2016-06-09 86 views
0

我需要允许服务器端淘汰网格排序,我试了下面的代码没有运气,任何建议?服务器端排序淘汰网格

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> 

回答

0

现在这是排序的,为什么上面的自身代码不工作是因为我必须通过的原因。“的SortInfo()列”和“sorInfo()。direction”的值返回到actionMethod,每当ko网格渲染时从服务器拉动数据,所以基本上,一旦你将这两个值传递给相关的动作方法,你想要做的就是使用OrderBy <> ... OrderBy <>降序...使用“sortinfo()。列作为键,所有这些作为您的服务器代码的一部分...因此,网格w不适当地呈现按预期方式排序的数据以及整组行,而不仅仅是当前显示在屏幕上的数据。