【问题标题】:Server Side Sorting for Knockout Grid淘汰赛网格的服务器端排序
【发布时间】:2016-10-09 22:29:22
【问题描述】:

我需要允许在淘汰赛网格上进行服务器端排序,我尝试了下面的代码但没有运气,有什么建议吗??

self.sortInfo = ko.observable();
self.sortOnServer = ko.observable(false);
self.sortInfo.subscribe(function (data) {
     self.sortOnServer(!self.sortOnServer());
     if (!self.sortOnServer()) return;
     paginationInfo.SortColumnName = self.sortInfo().column.field;
     if (self.sortInfo().direction === 'desc') {
         paginationInfo.DescendingSort = true;
     } else {
         paginationInfo.DescendingSort = false;
     }
     showLoading();
     self.getPagedDataAsync(self.pagingOptions.pageSize(), self.pagingOptions.currentPage(), self.filterOptions.filterText());
});

self.gridOptions = {
        data: self.results,
        enablePaging: true,
        pagingOptions: self.pagingOptions,
        filterOptions: self.filterOptions,
        columnDefs: self.columns,
        displaySelectionCheckbox: false,
        rowHeight: 20,
        selectWithCheckboxOnly: true,
        jqueryUIDraggable: true,
        useExternalSorting: true,
        sortInfo: self.sortInfo
    };

和 HTML 如下:

<div id="grid" class="gridStyle" data-bind="koGrid: gridOptions">
        </div>

【问题讨论】:

    标签: c# model-view-controller knockout.js


    【解决方案1】:

    现在已排序,上面的代码本身不起作用的原因是因为我必须将“sortInfo().column”和“sorInfo().direction”值传递回拉动每次渲染 ko 网格时都来自服务器的数据,所以基本上,一旦你将这两个值传递给相关的操作方法,你想要做的就是使用 OrderBy... OrderByDescending... 使用“sortinfo ().column 作为键,所有这些都是您的服务器代码的一部分...因此,网格将显示按预期排序的数据以及整组行,而不仅仅是当前显示在屏幕上的行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 2012-10-01
      • 2014-10-18
      • 2012-12-20
      • 2017-08-18
      相关资源
      最近更新 更多