這是一個我知道的問題已經在這裏和互聯網上的其他幾個地方問過。我已經嘗試了所有可以在StackOverflow網站上找到的解決方案,結果相同,沒有解決我的問題。JQGrid客戶端分類
我想從數據庫加載數據一次,然後在客戶端上執行所有排序操作。 loadonce屬性聽起來像它應該處理這個,但它似乎並沒有爲我工作。我也嘗試在各種事件處理程序中將數據類型設置爲本地,但沒有成功。
這是我用來實例化網格的代碼。
$('#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社區。
雖然這並沒有直接回答我的問題,但確實讓我朝着正確的方向前進。我按照你的建議將網格改爲使用數據類型:'json'。我仍然有排序問題,但我意識到這是因爲我使用的索引值。我沒有意識到它必須匹配JSON數組的數據屬性。 – arb
@ Zero21xxx:是的,如果服務器端數據'index'可以不同於'name'屬性。在本地數據的情況下或者在'loadonce:true'的情況下,'index'應該與'name'相同。我無法描述你需要解決的所有問題。例如,對於所有具有其他排序類型爲'text'(例如'integer'或'date')的列來說,包含'sorttype'可能很重要。無論如何,如果你現在使用'datatype:'json'' - 你的方式是正確的。 – Oleg