ASP.NET GridView绑定序列

时间:2011-08-03 19:03:33

标签: c# .net asp.net data-binding

我正在尝试在运行时绑定我的GridView,但我也试图避免两次运行所有绑定事件。

我有一个GridView,它从一个返回DataTable的函数中填充。由于几个原因,我没有在网格中使用ViewState。我似乎有一个Catch-22的情况:

  • 如果我最近没有通过Page_Load绑定网格,则RowCommand和其他网格事件将不会触发。
  • 如果我在Page_Load中绑定网格,但是我从寻呼机链接,排序链接或搜索按钮进入PostBack,那些事件处理程序将更改数据并需要重新绑定它,再次运行所有绑定代码

网格触发DataBound,RowDataBound和RowCreated事件,可以执行昂贵的操作。我真的很讨厌在Page_Load中调用它们全部,然后在数据发生变化时擦除数据并再次调用它们。但我似乎无法避免这种双重责任,因为在Page_Load中我不知道它是一个会改变数据的网格事件,还是一个没有的网格事件。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

检查请求是否是回发。将数据表绑定到网格,如下所示:

如果(!的IsPostBack)... 这样你就不会在每个请求上将表绑定到网格上。

答案 1 :(得分:1)

尝试命令参数。如果单击gridview中的按钮,则会触发该事件,您可以适当地处理它。你的问题不够明确我害怕。你能更具体一点吗?