我有一個綁定的jqGrid一個服務器端的數據。我只想在點擊排序按鈕時進行本地排序。編程本地排序對服務器數據的jqGrid
我已經這樣做了: 剛剛編輯:獲取完整的數據,然後排序並將其插入到網格中。
編輯
var asc = true;
$(document).ready(function() {
$("span.s-ico").click(function() {
var allData = jQuery("#myGrid").jqGrid('getRowData');
if (asc == true) {
allData.sort(function (a, b) {
if (a.myID> b.myID) return -1;
else return 1;
});
asc = false;
}
else {
allData.sort(function (a, b) {
if (a.myID> b.myID) return 1;
else return -1;
});
asc = true;
}
var alt = $.extend(true, [], allData);
//alt.shift().shift();
$('#myGrid').jqGrid('setGridParam', { url: null, datatype: 'local' });
$('#myGrid').jqGrid('setGridParam', { data: alt });
$('#myGrid').trigger("reloadGrid");
return false;;
//alert("I'm clicked");
});
});
在其上配置這樣一個jqGrid的:
$("#myGrid").jqGrid({
url: URL,
datatype: 'json',
mtype: req,
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
colNames: ['AnotherColumn', 'myID'],
colModel: [
{ name: 'AnotherColumn', index: 'AnotherColumn', width: 105, sortable: false, editable: true },
{ name: 'myID', index: 'myID', sortable: true, width: 185, editable: true }
],
rowNum: 100,
rowList: [],
pgbuttons: false,
pgtext: "Page {0} of {1}",
pgtext: null,
pager: '#myGridPager',
sortname: 'myID',
viewrecords: false,
sortorder: 'asc',
sortable: true
});
我已經編輯我的代碼,使索引和名稱相似。 其實我不能使用'loadonce:true'。我已經實現了其他自定義按鈕,如果我做'loadonce:true',他們正在完全打破自己。 感謝您解釋排序如何工作!但是可以通過任何方式使'loadonce:false'並從服務器加載數據並填充數據字段。 如果我最初使'loadonce:true',然後在第一個網格重新加載並刪除一些行之後我做了'loadonce:false'。然後還顯示舊數據。任何方式來解決它? –
@ soham.m17:你有多少行? 100,1000,100000,...?爲什麼不使用標準方式'loadonce:true'? – Oleg
@ soham.m17:你可以手動填寫原因數據,但你首先需要確定它是正確的。你可以在'loadComplete'或'beforeProcessing'中填充'data'。現在對我來說主要問題是:這是否是正確的方式? – Oleg