我对页面事件顺序的理解是:
页面:加载
控制:DataBind(用于GridView或其他)
控制:加载
控制:单击(按钮)
Page:PreRender
控制:PreRender
(还有很多其他的 - 但这些是我感兴趣的)
这里要注意的重要一点是按钮的click事件在 gridview的bind事件之后。如果按钮导致数据更改,则GridView将显示旧数据。我可以在PreRender事件中重新绑定控件,但这看起来很丑陋。
这必须是一种非常常见的模式(更新数据的按钮)。如何将这些放在一起,以便在按钮点击更改后,GridView绑定到数据?
答案 0 :(得分:2)
答案是在Button Click事件中,在数据更改后,在页面上调用DataBind()以使GridView(以及其他任何需要它的东西)重新绑定。我没有意识到你能做到这一点。
谢谢Ocdecio& Mufasa - 我会说你的答案很有帮助,但我还没有代表。
答案 1 :(得分:1)
默认情况下,ASP.NET会执行大量绑定和重新绑定。点击事件后重新绑定是正常的。
答案 2 :(得分:0)
在GridView绑定之后按钮单击事件的唯一原因是您编写了页面来执行此操作。我没有看到在PreRender事件中绑定控件有任何问题,实际上这是在控件事件(例如Button onclick)之后采取操作的唯一方法。