1

ページネーションオプション付きのページを作成しました。コードは次のようになります: http://blog.ryanvanderpol.com/index.php/2012/07/using-knockoutjs-to-create-an-edit-in-place-data-grid/

ノックアウト js で、dependentObservable PagedList データに並べ替えを追加できないようになりました

PagedList には Sort() プロパティがないため..

助けてください

4

2 に答える 2

1

おそらく、監視可能な配列の代わりに計算された配列を使用するように彼のビューモデルを変更できますか?

これが例です

self.list = ko.observableArray(initialData);

self.sortProperty = ko.observable('propertyNameInRowObject');

self.sortedList = ko.computed( function() {
    var sorted = self.list.sort( self.sortFn );    
    return sorted;
};

self.sortFn = function(a, b) {
    if ( a[self.sortProperty()] > b[self.sortProperty()] ) {
        return 1
    }
    else if ( a[self.sortProperty()] < b[self.sortProperty()] ) {
        return -1
    }
    else { 
        return 0
    }
}

self.onColumnClicked = function(e) {
    var colName = e.target.Name; // probably something like this...
    if ( colName === 'xyz' ) {
        self.sortProperty('xyzProperty');
    }
}

申し訳ありませんが、私の JavaScript は少し錆びています。ほとんどの作業は coffeescript で行っています。

于 2013-02-11T20:15:53.397 に答える
0

次のように置き換えることができます。

self.someArray = ko.dependentObservable(function() {
    return [someDependency()];
});

これとともに:

self.someArray = ko.observableArray();
ko.dependentObservable(function() {
    self.someArray([someDependency()]);
});

// now you can call sort on someArray
var sortedArray = self.someArray.sort();

値を返さずに、dependentObserable/computed を使用して、他のオブザーバブルの新しい値を計算できます。

于 2013-02-11T20:14:03.677 に答える