RadGrid не обновляет данные во время подкачки

Я использую 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 прямо сейчас, в то время как я пытаюсь заставить остальную часть работы работать. Кроме того, как только я позволю разное количество строк на странице, код придется изменить; опять же, это просто упрощенный код, пока я пытаюсь заставить все работать. Я не думаю, что эти вещи являются частью проблемы, но не стесняйтесь исправлять меня, если я идиот.)

1 ответ

Пробовали ли вы логику из этой демонстрации? http://demos.telerik.com/aspnet-ajax/grid/examples/functionality/paging/custom-paging/defaultcs.aspx

Другие вопросы по тегам