如果在Page_Load()内调用DataBind(),则SqlDataSource不执行更新

时间:2009-07-29 21:27:42

标签: asp.net data-binding gridview sqldatasource

如果我将GridView(通过DataSourceID属性)绑定到SqlDataSource并设置SelectCommand和UpdateCommand属性,那么一切都很完美。

但是我注意到,如果我出于某种原因,也在Page_Load()中手动调用DataBind(),那么SqlDataSource不会执行任何更新,即使在GridView的时候SqlDataSource.Updating和SqlDataSource.Updated事件也会触发点击更新按钮。

有人可以解释为什么不会发生更新吗?

1 个答案:

答案 0 :(得分:8)

这是因为在激活SqlDataSource.Updating和SqlDataSource.Updated事件之前会触发Page_Load。这意味着GridView将重置为用户编辑之前的内容。

有关详细信息,请查看Page Lifecycle文档。 SqlDataSource.Updating和SqlDataSource.Updated事件发生在Postback事件处理部分。