2

Ajaxバインディングを使用して、ページに剣道UI MVCグリッドがあります。ユーザーは行をクリックして、製品詳細ページで製品の詳細を表示できます。

問題は、ユーザーがグリッド ページ 3 に移動して製品詳細ページに移動し、[戻る] ボタンをクリックしてグリッドを更新し、最初のグリッド ページを表示することです。

戻るボタンをクリックした後、グリッドが 3 ページにとどまる可能性はありますか?

4

4 に答える 4

0

この方法で3ページに移動できます:$('#grid')。data()。kendoGrid.dataSource.page(3); したがって、「現在のページ」をCookieまたはURLに保存するだけです(これが優れています)。次に、3ページに移動します。daterkendo-Grid dataBound :) ...まだテストしていませんが、機能すると思います:)

于 2013-02-16T14:49:47.233 に答える
0

詳細ページに移動する前にグリッドの状態を保持できます

詳細に入る前に:

var grid = $("#grid").data("kendoGrid");
localStorage["kendo-grid-options"] = kendo.stringify(grid.getOptions()); 

ドキュメントのロード時:

$(document).ready(function() {
    var grid = $("#grid").data("kendoGrid");
    var options = localStorage["kendo-grid-options"];
    if (options)
        grid.setOptions(JSON.parse(options));
});

デモ

于 2015-03-27T07:20:49.710 に答える
0

実際には、グリッド ページャーの変更リスナーを実装する必要があります。

$('#grid').kendoGrid({
    ... 
    pageable: {         
        change: function (e){
            location.hash = e.index; // or set the cookie               
        }           
    },
});

次に、場所 (またはcookie ) の変更をリッスンします。場所の例:

$(window).on('hashchange', function() {
    var gridPager = $('#grid').data("kendoGrid").pager;   
    var gridPage = gridPager.page(), currentPage = getPageFromBrowserWithSomeDefault();

    //  Update only if necessary since kendo does not do extra comparison
    //  UPD: if server returns no results gridPage would be 0 instead of 1
    if (gridPage > 0 && gridPage != currentPage) {
        gridPager.page(currentPage);
    }     
}); 

難しいのは、直接ナビゲーションを可能にすることです。最初は、データソースはアイテムの数について何も知らないため、最初のページ以外のページをリクエストすることはできません。したがって、必ずリクエストしてください

    $('#grid').kendoGrid({
        ...
        autoBind: true,
    });

応答が取得されて処理されると、' hashchange ' ハンドラーをトリガーしてグリッドを更新することができます(たとえば、ajax 呼び出しの' success ' ハンドラーで):

    $(window).trigger('hashchange');
于 2013-04-03T16:35:37.480 に答える
-1
var selectedPage=1;    
    $('#grid').kendoGrid({

        pageSize: 10,
        page: selectedPage,
        ... 
        pageable: {         
            change: function (e){
                selectedPage = e.index;            
            }           
        },
    });
于 2015-03-27T06:54:52.763 に答える