使用GridView的模板列实现在线编辑的功能

来源:互联网 发布:淘宝达人和微淘区别 编辑:程序博客网 时间:2024/05/12 14:14
 
使用GridView的模板列实现在线编辑的功能
 
主要问题是当点击编辑按钮后如何出现新的界面,以及产生对应的事件
1.       首先我们需要在GridView中添加模板列,这里仅仅添加三列,其中第一列是用于编辑(即实现点击编辑按钮后变为OK和Cancle按钮状态)
2.       不容置疑的,我们要对数据行进行绑定
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowIndex!=GridView1.EditIndex)
        {
            Button edit = e.Row.FindControl("btEdit") as Button;
            edit.CommandArgument = e.Row.RowIndex.ToString();
        }
   }
3.       在对进行模板列进行编辑中,在相应的按钮下添加触发的事件
(1)
protected void btEdit_Click(object sender, EventArgs e)
    {
        Button rowbutton = sender as Button;
        GridView1.EditIndex = Convert.ToInt32(rowbutton.CommandArgument);
        BindDataa();
}
 
    (2)
protected void btOK_Click(object sender, EventArgs e)
    {
        string key = GridView1.DataKeys[GridView1.EditIndex].Value.ToString();
 
        GridView1.EditIndex = -1; //由编辑状态变为原始状态
        BindDataa();
}
 
    (3)
protected void btCancel_Click(object sender, EventArgs e)
    {
        GridView1.EditIndex = -1;
        BindDataa();
    }
 
 最后我们实现的就是下图示的效果:
 
当点击Edit后:
这里仅仅是实现了初步的功能,可以在此基础上进行有效的拓展。
相应的Demo在我的资源里边。