GridView按钮列:当使用RowCommand事件时

GridView中按钮列-ButtonField使用心得一二:

在为GridView添加按钮列时,使用,net环境默认提供的可视化操作界面“添加字段”中,会提供以下选项:

Android GridView Item去掉点击背景 gridview button_控件

当选择界面中选项名为“命令名”,值为“Cancel”时,需要在后台页面当中追加RowCancelingEdit事件,否则当运行页面后,点击该按钮,会报出异常,提示如下:“GridView“GridView1”激发了未处理的事件“RowCancelingEdit”


 

但我本人原来的用意是想取消页面当中的员工外出状态,即通过更改员工外出状态表当中外出状态值(即IsOut),将其由原来的“1”(表示“外出”)置为“0”(表示“已回公司”),因此在这里并不需要借助默认的取消事件“RowCancelingEdit”只需要定义事件“RowCommand”即可。

1.右击前台页面,选择“查看代码”;



2. 定义事件“RowCommand” 代码如下:

protectedvoidobjectGridViewCommandEventArgs e)
    {
       //判断GridView中按钮名称是否为“End“
        if"End")
        {
            receiveinfor = new Receiveinform();
            //定义业务逻辑层操作类的实例

 
            intConvert.ToInt32(e.CommandArgument);
            intint)GridView1.DataKeys[index].Value;            
            
            //更新员工外出状态值,返回更新后影响的行数
            int res = receiveinfor.UpdateOutStatus(hideOutId);

 
            //如果更新成功,刷新GridView的值
            if (res > 0)
            {
                BindGrid();
            }
            else
            {
                Response.Redirect("<script>alert('对不起,请重试!');</script>");
                return;
            }
        }
    }

代码说明:

上面的代码中涉及到以下两句话:

intConvert.ToInt32(e.CommandArgument);

intint)GridView1.DataKeys[index].Value;


 

第一句是用来获取gridview控件中点击按钮列“end”时,控件中某一行的索引值(e.CommandArgument),需要注意的是控件默认的不同事件里面,获得某一行的索引值,不同事件有不同的方法。

例如上述的RowCommand事件中使用属性e.CommandArgument,而在RowCancelingEdit事件中使用属性 e.RowIndex。需要注意区分。

第二句,使用Gridview的DataKeys属性,获取gridview控件定义的某一行的主键值,结果返回至整形变量hideOutId中去。 

Android GridView Item去掉点击背景 gridview button_控件_02