首页 新闻 会员 周边

GridView两个更新事件怎么用

0
[已解决问题] 解决于 2008-12-02 20:34

vs2005.NET  中GridView控件 GridView_RowUpdated 和GridView_RowUpdating两个事件怎么用

wolfes的主页 wolfes | 初学一级 | 园豆:174
提问于:2008-11-30 22:02
< >
分享
最佳答案
0

这两个都在更新数据时触发,不同之外在于 GridView_RowUpdated 在更新到数据库后发生,而 GridView_RowUpdating 在更新到数据库之前发生。

一般在GridView_RowUpdating 中都会有一些处理:
1、有一些字段没有在GridView中出现但是也需要更新(例如更新时间)
2、有一些字段出现在了GridView中,但是并不需要更新到数据库
3、有一些字段需要转换一下才可以更新(一般都是一些dropdownlist或者checkbox等)
4、其他需要对值在更新前进行一下处理的情况
总之,GridView_RowUpdating负责在把请求发送到数据库之前,将数据处理得符合数据库的要求

而GridView_RowUpdated是在数据库更新完之后才执行的,一般会执行一些后期的绑定工作,比如重新绑定关联的DetailView、FormView等

丁学 | 专家六级 |园豆:18730 | 2008-12-01 07:22
其他回答(2)
0

一般做行更新的时候用第二个就行了.

下面是使用的一块例代码块:核心语句还是得到当前更新行的控件.

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        sqlcon = new SqlConnection(strCon);
        string sqlstr = "update 表 set 字段1='"
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',字段2='"
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',字段3='"
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='"
            + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
        sqlcom=new SqlCommand(sqlstr,sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        GridView1.EditIndex = -1;
        bind();
    }

第一个事件为更新成功后触发的吧.

Astar | 园豆:40805 (高人七级) | 2008-11-30 22:17
0

同意楼上的...

有所为,有所不为 | 园豆:1200 (小虾三级) | 2008-12-01 14:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册