1

我正在使用 Telerik RadGrid,我们正在尝试让它与 CustomPaging 一起使用。我觉得我很接近,但它没有更新网络客户端上的数据。

我的 aspx 页面代码如下所示:

<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
</telerik:RadAjaxLoadingPanel>

<telerik:RadAjaxPanel ID="RadAjaxPanel2" runat="server" LoadingPanelID="RadAjaxLoadingPanel1">
    <telerik:RadGrid ID="rgItemCustomFields" runat="server" OnNeedDataSource="rgItemCustomFields_NeedDataSource" AllowPaging="true" AllowCustomPaging="true" VirtualItemCount="1000" >
        <PagerStyle Mode="NextPrevAndNumeric" Position="TopAndBottom"></PagerStyle>
    </telerik:RadGrid>
</telerik:RadAjaxPanel>

我的代码隐藏看起来像这样:

protected void Page_PreRender(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        rgItemCustomFields.Rebind();
    }
}

protected void rgItemCustomFields_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    int currentPage = rgItemCustomFields.CurrentPageIndex;
    DataTable data = GetData(currentPage);

    rgItemCustomFields.DataSource = data;
}

页面显示在屏幕上,我看到前 10 行数据,我在第 1 页。如果我然后单击不同的页码,网格消失,准备显示新数据,并且 rgItemCustomFields_NeedDataSource 方法叫做。

当我添加断点并查看 rgItemCustomFields_NeedDataSource 方法中的数据时,它看起来正确:我看到 10 行,它们与我在屏幕上显示的不同。

我在 VS 中按继续,网格在浏览器中重新显示,但我回到第 1 页,原始数据又回来了。

以某种方式缓存?(我不明白怎么做,但出了点问题。)我在做傻事吗?

(我知道 VirtualItemCount 是错误的:它现在只是硬编码为 1000,而我试图让其余的东西正常工作。此外,一旦我允许每页有不同数量的行,代码将不得不更改;再次,这是只是在我尝试使事情正常工作时简化了代码。我不认为这些事情是问题的一部分,但如果我是个白痴,请随时纠正我。)

4

1 回答 1

0

您是否尝试过此演示中的逻辑http://demos.telerik.com/aspnet-ajax/grid/examples/functionality/paging/custom-paging/defaultcs.aspx

于 2014-07-01T13:47:28.873 回答