我在GridView上进行分页时遇到了奇怪的经历。 我试图通过使用带有计时器和updateprogress的updatepanel将数据延迟加载到我的griview中。 基本上我要做的是当网格加载的页面启动时启动计时器。在timer_tick事件中,我获取数据并将其加载到变量中。然后在gridview上调用databind,强制它绑定数据。这里我使用LinqDataSource来做到这一点。最后,我通过updatepanel上的Update方法更新UI。
这一切都可以在网格视图上进行排序和过滤,但是当我分页时,网格页面应该是这样,但是分页模板总是停留在第一页(显示1为活动状态)。人们有什么想法?以下是我的一些代码:
<asp:LinqDataSource runat="server" ID="OrdersDataSource"
OnSelecting="OrdersDataSource_Selecting" AutoPage="false" />
<asp:GridView runat="server" ID="OrdersGridView" AutoGenerateColumns="false"
DataSourceID="OrdersDataSource"
AllowPaging="true" AllowSorting="true" PageSize="3">
<Columns>
...
<asp:Timer runat="server" ID="LazyLoadUpdatePanel"
Enabled="false"
Interval="1" OnTick="LazyLoadUpdatePanel_Tick" />
...
protected void LazyLoadUpdatePanel_Tick(object sender, EventArgs e)
{
if (datasource == null)
{
System.Threading.Thread.Sleep(2000);
datasource = customer.Orders;
OrdersGridView.DataBind();
OrdersUpdatePanel.Update();
}
LazyLoadUpdatePanel.Enabled = false;
}
顺便说一句,我已经尝试过对数据源进行自动分页而没有它。那不成功。正如我所说,分页似乎有效,但UI并没有显示我应该做的事情。
答案 0 :(得分:0)
GridView上的EnableViewState =“false”使其正常工作。