GridView中添加的按钮问题

    在GridView中添加按钮,可以利用TemplateField中添加一个button控件,也可以直接添加一个buttonField。当点击按钮时,处理事件往往需要的是该按钮所在行的行数。而如何让每个按钮获得相应的行数,就是问题。
    在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参数即可。




posted on 2007-12-24 15:44  Willson  阅读(3108)  评论(0编辑  收藏  举报