1

私は 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 にハードコードされているだけです。また、ページごとに異なる数の行を許可したら、コードを変更する必要があります。繰り返しますが、これは動作させるためにコードを単純化しただけです。これらが問題の一部だとは思いませんが、私がばかげている場合は、お気軽に修正してください。)

4

1 に答える 1