私は Telerik RadGrid を使用しており、それを CustomPaging と連携させようとしています。近い気がしますが、Web クライアントのデータを更新していません。
私の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 にハードコードされているだけです。また、ページごとに異なる数の行を許可したら、コードを変更する必要があります。繰り返しますが、これは動作させるためにコードを単純化しただけです。これらが問題の一部だとは思いませんが、私がばかげている場合は、お気軽に修正してください。)