5

KendoUI Grid を使用して、KnockoutJS MVVM 対応アプリケーションでデータを表示しています。MVVM はクライアント側のアーキテクチャであるため、knockoutjs オブザーバブル配列を維持し、サーバーからその配列にデータをロードしています。

self.loadForGrid = function() {
    $.ajax({
        url: "api/matchingservicewebapi/GetAllMatchItemForClient/1",
        type: 'GET',
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            console.log(data);
            $.each(data, function (i, obj) {
                self.users.push(self.items.push({ BirthDate: obj.BDate, Ref: obj.Ref, Amount: obj.Amount, Account: obj.Account, MatchItem_Id: obj.MatchItem_Id }));

            });
            window.alert('User(s) loaded successfully');
        },
        statusCode: {
            401: function (jqXHR, textStatus, errorThrown) {
                alert('Error loading users2');
            }
        }
    });
};

これはうまくいきます。しかし、グリッドにページネーションを実装したいと考えています。このようにクライアント側で行うことができます。これは私のビューモデル コードです。

self.items = ko.observableArray([]);

ko.bindingHandlers.kendoGrid.options = {
    groupable: true,
    scrollable: true,
    sortable: true,
    pageable: {
        pageSizes: [5, 10, 15]
    }
};

そして、これは HTML ファイルでの私のバインディングです (私はKnockout-Kendo.jsを使用しました)。

<div data-bind="kendoGrid: items"> </div>

しかし、私が望むのは、サーバーのページネーションを有効にすることです。つまり、次のページに移動するとき (ページ 2 に移動するとき) に、データ (ページ 2 のデータとしましょう) を自分の knockoutjs オブザーバブル配列に再度ロードする必要があります。どうやってやるの?

前もって感謝します。

4

1 に答える 1