1

グリッドでこの値に問題があります。

合計アイテムでグリッド構成に渡すオブザーバブルを取得していないようです。

3 つの異なるタブに 3 つの koGrid があります。それらはすべて同じ初期化を使用しています。

data-bind="koGrid: {data: records,
                                         autogenerateColumns: false,
                                         isMultiSelect: false,
                                         displayRowIndex: false,
                                         displaySelectionCheckbox: false,
                                         enablePaging: true,
                                         pageSizes: pageSizes,
                                         pageSize: pageSize,
                                         totalServerItems: totalItems,
                                        footerTemplate: 'koGridDebugFooter',
                                         currentPage: currentPage,                                        
                                         columnDefs:[
                                            {field: 'Created', width:300},
                                            {field:'Name', width:300},
                                            {field: 'Value', width:300}                                            
                                         ]} ">

サーバーには 12 行あります。ページ サイズを 10 に指定すると、サーバー アイテムの合計は 10 のままになり、ナビゲーション ボタンは無効のままになります。

ビュー モデルの値、つまり viewmodel.totalServerItems を含むラベルを追加すると、そこに含まれる値は正しい値 (12) ですが、フッターには別の値 (10) が表示されます。

kogrid の定義で次の行を変更しました。

/***********************************************
* FILE: ..\Src\GridClasses\Footer.js
***********************************************/
kg.Footer = function (grid) {
    var self = this;

    this.maxRows;

    //if (grid.config.totalServerItems() !== null && grid.config.totalServerItems() !== undefined) {
        this.maxRows = grid.config.totalServerItems; //observable
    //} else {
    //    this.maxRows = grid.maxRows; //observable
    //}

そのため、常にオブザーバブルをこのパラメーターに設定しています。私が見る唯一のリスクは、呼び出し元がパラメーターを設定していない場合です。しかし、私はいつもそれをやっています。

私は何か間違ったことをしていますか?別の解決策を知っていますか?

ありがとう!

4

1 に答える 1

2

totalServerItems は、次のようなページング オプション内にあります。

self.PagingOptions = {
            pageSizes: ko.observableArray([10, 20, 50]),
            pageSize: ko.observable(10),
            totalServerItems: ko.observable(0),
            currentPage: ko.observable(1)
        };
于 2013-04-29T13:34:15.100 に答える