GridView中添加的按钮问题
在GridView中添加按钮,可以利用TemplateField中添加一个button控件,也可以直接添加一个buttonField。当点击按钮时,处理事件往往需要的是该按钮所在行的行数。而如何让每个按钮获得相应的行数,就是问题。
在buttonField这种方法中,点击按钮是出发的事件RowCommand(object sender, GridViewCommandEventArgs e),其中e.CommandArgument的数值,就是行数,也就是rowindex。而在TemplateField中添加button就需要手动为每一个button的CommandArgument赋行数值。方法如下:
GridView在每一行绑定数据后,会出发该事件处理。而此时的参数 e.Row.RowIndex 的值正是行数。将其付给该行的button的CommandArgument参数即可。
在buttonField这种方法中,点击按钮是出发的事件RowCommand(object sender, GridViewCommandEventArgs e),其中e.CommandArgument的数值,就是行数,也就是rowindex。而在TemplateField中添加button就需要手动为每一个button的CommandArgument赋行数值。方法如下:
1 protected void GVManageScreen_RowDataBound(object sender, GridViewRowEventArgs e)
2 {
3 if (e.Row.RowType == DataControlRowType.DataRow)
4 {
5 Button bt = new Button();
6
7 //Find the button in first Cell
8 bt = (Button)e.Row.Cells[0].FindControl("BTShowDetail");
9
10 int basicpage = e.Row.RowIndex + 1 + (sp.CurrentPage - 1) * sp.PageSize;
11
12 bt.Text = basicpage.ToString();
13 //set button's CommandArgument as current row's RowIndex
14 bt.CommandArgument = e.Row.RowIndex.ToString();
15 }
16 }
GridView在每一行绑定数据后,会出发该事件处理。而此时的参数 e.Row.RowIndex 的值正是行数。将其付给该行的button的CommandArgument参数即可。