2012-09-13 115 views
1

在我的网页中,我有一个在Page_Load方法中创建的gridview,它从数据库表中检索一些值。我还有一个按钮,单击时会导致添加/删除表中的行的事件处理程序。目前,当我按下按钮时,事件处理程序将运行,但GridView不会更新,直到发生另一个回发。C#.NET,Postback在执行事件处理程序之前发生?

对我来说,这似乎意味着回发发生在事件处理程序执行之前。它是否正确?如果是这样,我该如何做到这一点,使按钮更新表格,然后重新加载gridview?我想我可以在事件处理程序中重新创建gridview数据源,但这似乎是解决问题的一种非常低效的方式。

回答

6

这是正确的。 Control Events是在Page Load事件后处理的。

回顾this documentation关于来自MSDN的Page Lifecycle

有什么可能有助于您理解这是在Page_Load方法和您的Button Click事件处理程序上的代码中设置断点,然后单击该按钮并查看每个断点何时被命中。

对于您的Gridview,您必须再次调用您的绑定代码才能在回发后显示您的更改。最好的办法是用绑定代码创建一个方法,然后从事件处理函数中调用它。

+0

+1,我打算发布那个链接,如果没有人的话。这是来自MS的另一个有用的链接,尤其是对于Master Pages:http://msdn.microsoft.com/en-us/library/dct97kc3.aspx – Gromer

相关问题