Title生成按钮事件的接口 Gridview控件里自带的行删除,更
新功能仅有接口,没有响应事件的代码。要想实现对GridView中行
的操作,可以通过添加自定义的按钮事件来实现。下面以添加自定
义的删除按钮来说明。
打开GridView的Smart penl,点击编辑列,双击ButtonField
,以添加按钮字段。BttonType选Butten,设置CommandName,如设
为“Del”,那么这个“Del”就用来唯一标识这个按钮的响应命令
。其他属性,如TEXT,Headertext,可根据需要自己设置。这样添
加按钮字段就完成了,接下来配置按钮响应事件的接口。
打开GridView的属性页,点击事件。双击RowCommand右边的
空白,就会转到.CS代码编辑页面,并自动生成按钮事件的接口。(
如下图)
protected void GridView1_RowCommand(object sender,
GridViewCommandEventArgs e)
{
}
Title行删除按钮的响应事件
Code
protected void GridView1_RowCommand(object sender,
GridViewCommandEventArgs e)
{
if ("del" == e.CommandName)
{
con.Open();
int idx = Convert.ToInt16(e.CommandArgument
.ToString());
string hid= GridView1.DataKeys[idx
].Value.ToString();
string sqldel = "delete from T_CourseInfo where
HomeworkID='"+hid+"'";
SqlCommand cmd = new SqlCommand(sqldel,con );
cmd.ExecuteNonQuery();
con.Close();
GridView1.DataBind();
}
说明:函数的参数e,传回来两个重要信息,一个是
e.CommandName,另一个是e.CommandArgument。前者的值是按钮的标
志,以方便在有两个以上按钮的时候选定特定的按钮。后者的值是
按钮所在的行号。如,0,1,...
然而,对数据库的操作都是以数据表的主键来实现的,但e只
传回来一个行号,这怎么办呢?
其实GridView是可以把行号和主键关联起来的。在GridView的
属性页,把DataKeyNames的值设为该数据表的主键字段就可以了。
如下:
int idx = Convert.ToInt16(e.CommandArgument
.ToString());
string hid= GridView1.DataKeys[idx ].Value.ToString
();
idx的值便是按钮所在的行号,Hid的值便是第idx行的主键。
有了主键,数据库的操作就非常简单了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-580660/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12639172/viewspace-580660/