在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 }
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参数即可。