波兰俄罗斯世仇:急!有关DataGrid控件的属性问题,如马上回答直接再加

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/04 07:45:45
要做一个用户管理的服务器端的程序,想用DataGrid控件来显示
现在我想做这样一个功能:
选择一行(就是一横行,不是字段,也不知道叫什么:P),然后点击删除健删除
如果用SQL删除,但是SQL搜索的话,要定义出字段和哪一行被选中阿,对吧?我不知道那被选中的行的属性是什么(我是指DataGrid. 后面的那串英文)请问有人知道吗?
或者谁有另外的实现的方法也可

用事件来做
在private void InitializeComponent(){}中写上this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand);

然后写DataGrid1_CancelCommand事件的代码,如下
private void DataGrid1_DETELECommand(object sander ,DataGridCommandEventArgs e)
{
SqlConnection sqlcon=new SqlConnection("server=.;uid=用户;pwd=密码;database=数据库");
sqlcon.open();//连接数据库
SqlCommand sqlcmd=new SqlCommand("DETELE 表名 WHERE 主键列="+e.Item.Cell[0].Text,sqlcon);
sqlcmd.ExecuteNonQuery();//执行SQL语句
DataGrid1.EditItemIndex=-1;//编辑的项的索引。默认值为 -1,指示在 DataGrid 控件中不编辑任何项。
BindDataGrid();//自定义函数重新绑定DataGrid
}

//重新绑定的函数就不解释了吧
pprivate void BindDataGrid()
{
SqlDataAdapter dt=new SqlDataAdapter(selectString,sqlcon);
DataSet ds=new DataSet();
dt.Fill(ds);
DataGrid1.DataSource=ds.Tables[0].DefaultView;
DataGrid1.DataBind();
}

在datagrid的属性里首先设置你的datakeyfile里写上你的数据库里的那个主键如newsid,点那个闪电符号来到可用事件里。双击deletecommand来到代码页面。在这个事件里写上以下面的代码:
string newsid=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
SqlConnection con=new SqlConnection("server=.;datavase=;uid=sa;pwd=;");
con.Open();
SqlCommand cmd=new SqlCommand("delete design where tnum='"+newsid+"'",con);
cmd.ExecuteNonQuery();
con.Close();

上面的解答用的是datagrid中的编辑button
如果用的是自定义模板的话:
首先在后台绑定用户所需要的数据
<asp:button runat=server id = "btn" text='<%#DataBinder.Eval(Container.DataItem,"columnsname")'%>(以后依次绑定,我省略了)
然后再前台对 这个btn编辑就可以了。
如果需要对btn事件的状态进行设置,那就得在
datagrid中的 itemdatabound中 进行设置
Button btn = (Button)e.Item.FindControl("btn");
对btn进行设置就可以了。