【发布时间】:2011-10-19 09:31:55
【问题描述】:
我试图在运行时绑定我的 GridView,但我也试图避免两次运行所有绑定事件。
我有一个从返回 DataTable 的函数中填充的 GridView。出于几个原因,我没有在网格中使用 ViewState。我似乎在这里遇到了 Catch-22 的情况:
- 如果我最迟不通过 Page_Load 绑定网格,则不会触发 RowCommand 和其他网格事件。
- 如果我在 Page_Load 中绑定了网格,但我在来自寻呼机链接、排序链接或搜索按钮的 PostBack 上,这些事件处理程序将更改数据并需要重新绑定它,再次运行所有绑定代码.
网格触发 DataBound、RowDataBound 和 RowCreated 事件,可能执行昂贵的操作。我真的很讨厌在 Page_Load 中调用它们,然后清除数据并在数据发生变化时再次调用它们。但我似乎无法避免这种双重职责,因为在 Page_Load 中我不知道是会更改数据的网格事件,还是不会更改数据的网格事件。
有什么想法吗?
【问题讨论】:
标签: c# .net asp.net data-binding