GridView分页始终显示第一页

时间:2009-06-15 16:46:28

标签: asp.net ajax gridview

我在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并没有显示我应该做的事情。

1 个答案:

答案 0 :(得分:0)

GridView上的EnableViewState =“false”使其正常工作。