koGrid는 여러 페이지가있을 때 모든 항목을 정렬 할 수없는 것 같습니다. 열 머리글을 클릭 할 때 표시되는 페이지 만 정렬하는 것처럼 보입니다. 다음 (또는 다음 또는 이전) 페이지로 이동하면 클릭 한 열에 따라 데이터가 정렬되지 않습니다. 이것은 koGrid 웹 사이트에 주어진 "서버 측 페이징 예"에도의 경우 : 사람이 koGrid를 사용하여 여러 페이지에 걸쳐 작업 정렬koGrid 정렬 - 서버 측 페이징
http://ericmbarnard.github.com/KoGrid/#/examples
을받은 적이 있습니까?
감사합니다.
function EmailBlastsViewModel() {
// Data
var self = this;
self.blasts = ko.observableArray();
self.selectedItems = ko.observableArray();
self.status = ko.observable('queued');
self.pagingOptions = {
pageSizes: ko.observableArray([25, 50, 100]),
pageSize: ko.observable(25),
totalServerItems: ko.observable(),
currentPage: ko.observable(1)
}
self.pagingOptions.currentPage.subscribe(function(data) {
self.reload();
});
self.pagingOptions.pageSize.subscribe(function(data) {
self.reload();
});
self.gridOptions = {
displaySelectionCheckbox: true,
data : self.blasts,
selectedItems: self.selectedItems,
multiSelect: false,
pagingOptions: self.pagingOptions,
enablePaging: true,
columnDefs: [
{ field: 'creator.name', displayName: 'From', width: 105 },
{ field: 'to_name', displayName: 'To', width: 105 },
{ field: 'subject', displayName: 'Subject', width: 160 },
{ field: 'status', displayName: 'Status', width: 132 },
{ field: 'date_scheduled', displayName: 'Date Scheduled', width: 160 },
{ field: 'date_sent', displayName: 'Date Sent', width: 160 },
{ displayName: ' ', cellTemplate: $('#cell-template').html(), width: 40 }
]
}
self.allMail = function(item, event) {
self.status(null);
self.reload()
}
self.queuedMail = function(item, event) {
self.status('queued');
self.reload()
}
self.sentMail = function(item, event) {
self.status('sent');
self.reload();
}
self.archiveEmail = function(item, event) {
var email = self.selectedItems()[0];
email.archive();
}
self.approveEmail = function(item, event) {
var email = self.selectedItems()[0];
email.approve();
}
self.rejectEmail = function(item, event) {
var email = self.selectedItems()[0];
email.reject();
}
self.deleteEmail = function(item, event) {
var email = self.selectedItems()[0];
email.deleteEmail();
}
self.reload = function() {
var spinner = new Spinner().spin(document.getElementById('spin'));
var data = {
'page' : self.pagingOptions.currentPage(),
'limit' : self.pagingOptions.pageSize()
}
if(self.status()) {
data['status'] = self.status()
}
$.ajax({
type: "GET",
data: data,
cache: false,
url: "/api/emailblast",
contentType: "application/json",
success: function(data, textStatus, jqXHR) {
spinner.stop();
var newData = [];
$.each(data.results, function(index, value){
var eb = new EmailBlast(self, value);
newData.push(eb);
})
self.blasts(newData);
self.pagingOptions.totalServerItems(data.total);
},
error: function(jqXHR, textStatus, errorThrown) {
spinner.stop();
noty({text: 'There was an error retrieving the email blasts.', type: 'error', timeout: 5000});
}
});
}
// Initialization
self.init = function() {
self.reload();
}
self.init();
};
emailBlastsViewModel = new EmailBlastsViewModel();
ko.applyBindings(emailBlastsViewModel);
답장을 보내 주셔서 감사합니다. 나는 당신이 제안했지만 행운이없는 변화를 시도했다. 방금 내 원본 코드 (제안없이)를 다시 게시했습니다. 어쩌면 일이 왜 작동하지 않는지를 분명히 할 수있을 것입니다. –
서버에서 정렬을 구현 중입니다. koGrid는 페이지가 표시되기 때문에 페이징을 사용할 때 여러 페이지의 모든 행을 정렬 할 수 없습니다. – segFault
오케이. 어쨌든 당신의 통찰력에 감사드립니다. –