[英]JQGrid Client Side Sorting
我知道這里和互聯網上的其他地方都曾問過這個問題。 我已經嘗試了所有可以在StackOverflow網站上找到的解決方案,並且結果相同,但是沒有任何解決方案可以解決我的問題。
我想一次從數據庫中加載數據,然后在客戶端上執行所有排序操作。 這個loadonce屬性聽起來應該可以解決這個問題,但是它似乎對我不起作用。 我也嘗試過在各種事件處理程序中將數據類型設置為local,但沒有成功。
這是我用來實例化網格的代碼。
$('#people_SelectedContacts').jqGrid({
ajaxGridOptions:{
type: "POST"
},
datatype: function(data){
$.ajax(klg.getAppRoot()+"AJAX/GetMatterProfileContacts",{
data: JSON.stringify({
MatterProfileID: $('#MatterProfileID').val()
}),
success: function(data){
var contacts = data.ReturnValues;
var mygrid = $("#people_SelectedContacts")[0];
mygrid.addJSONData(contacts);
},
complete: function(){
$("#people_SelectedContacts").setGridParam({datatype:'local'});
}});
},
loadonce: true,
colNames:['lecID','lrlID','mjID','Role','Name','Company/Court', 'Business Phone', 'Email', 'Docket #'],
colModel:[
{name:'LegalEntityContactID', hidden:true},
{name:'LegalRoleLookupID', hidden:true},
{name:'MatterJurisdictionID', hidden:true},
{name:'LegalRoleLookupName', index:'legalrole'},
{name:'FullName',index:'name'},
{name:'Company',index:'company'},
{name:'BusinessPhone',index:'bussphone'},
{name:'Email',index:'email'},
{name:'DocketNumber',index:'email'}
],
sortable: true,
jsonReader: {
root:'MatterProfileContacts',
repeatitems: false,
id:"MatterProfileContactID"
}
});
數據已正確加載到網格中,但是正如我所說,排序命令全部通過並再次命中服務器。 誰能指出我正確的方向? 我從標准HTML表切換到JQGrid的唯一原因是為了進行排序和分組。 如果我無法進行客戶端排序,那就沒用了。
謝謝Stack Overflow社區。
問題的原因是您將datatype
用作函數,而在99,9%的情況下則不需要。 問題在於,在loadonce: true
情況下,設置datatype: 'local'
不是jqGrid要做的唯一事情。 最重要的是, data
和_index
參數將填充從服務器返回的數據。 內部參數保存數據,並將在本地排序和分頁期間使用。 您當前的實現不填充data
和_index
,因此loadonce: true
無法正常工作。
除了使用datatype
作為函數外,還可以使用
datatype: 'json',
serializeGridData: function (data) { return JSON.stringify(data); },
postData: { MatterProfileID: function () { return $('#MatterProfileID').val(); } }
您還應該修改jsonReader
以在root
包含ReturnValues
。 我認為更改之后,您將可以使用loadonce: true
。 可能還需要做一些其他的小事情,但是最重要的是應該使用任何標准datatype
而不是datatype
作為函數。
我將網格更改為使用數據類型:'json'(如Oleg所建議)。 我仍然有排序問題,但我意識到這是因為我在列模型中使用了index
值。 列模型的index
值必須與從服務器返回的JSON對象的屬性名稱匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.