【发布时间】:2014-06-03 13:40:22
【问题描述】:
我是 ASP.Net 的新手,我对 DataBind 周围的工作方式有疑问:
Page_Load:如果 IsPostBack=false,我加载我的 DataTable var(在 Page_Load 之外声明)并将其绑定到 GridView。我的想法是保留 DataTable,避免对数据库进行新的查询。
-
当我点击不同的页面时,PageIndexChanging 被提出,这样做:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; GridView1.DataSource = _table; GridView1.DataBind(); } -
这效果不佳,因为网格显示为空。我在其他示例中发现数据源已完全重新加载,因此我将加载代码放在一个函数中,并更改了我的 PageIndexChanging 事件:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; LoadData(); GridView1.DataSource = _table; GridView1.DataBind(); } -
它不像一个魅力!我知道我的 DataTable 在 Page_Load 和 PageIndexChanging 事件之间被清除,可能是因为服务器没有保留数据表 var(请记住我是 ASP.NET 的新手......),但我想了解:
- 为什么服务器不保留变量?
- 有没有办法绕过这种情况以避免多个服务器数据请求?旁路的优缺点是什么?
非常感谢!
【问题讨论】:
标签: c# asp.net gridview datatable