C#.NET,回发发生在执行事件处理程序之前?

Ton*_*ony 1 c# sql asp.net

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

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

Dav*_*ych 6

那是正确的.Control Events在Page Load事件发生后处理.

查看有关MSDN的文档Page Lifecycle.

您可以帮助理解这一点,就是在Page_Load方法和Button Click事件处理程序的代码中设置断点,然后单击按钮查看每个断点何时被击中.

对于您Gridview,您必须再次调用绑定代码,以便在回发后显示更改.最好的方法是使用绑定代码创建一个方法,并从事件处理程序中调用它.