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