Это вопрос, который, я знаю, задавался здесь и в нескольких других местах в Интернете. Я попробовал все решения, которые смог найти на сайте StackOverflow, с тем же результатом, но ничего не решило мою проблему.
Я хочу загрузить данные из базы данных один раз, а затем выполнить все операции сортировки на клиенте. Свойство 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.