У меня проблема с Jqgrid, у меня две сетки на одной странице, а onclick на строке первой сетки необходимо перезагрузить вторую сетку.JqGrid Reload не работает
Я на 100% уверен, что вторая сетка настроена правильно, если я вручную передаю жесткий код, он заполняется правильно.
Только функция перезагрузки не работает. Пожалуйста, помогите кому-нибудь. Ниже приведен код JQuery для обеих сеток
$(document).ready(function() {
jQuery("#list2").jqGrid({
url:'classes/ListServices.php',
datatype: "json",
mtype: 'POST',
colNames: ['Id','Description', 'Details', 'Cost in (R)'],
colModel: [
{name:'Id',index:'Id', align:"center", width:30},
{name:'Description',index:'Description', align:"center"},
{name:'Details',index:'Details', align:"left"},
{name:'Cost',index:'Cost',align:"center",width:30,formatter:'currency'},
],
width: 780,
height: 100,
rowNum:18,
pager: '#pager1',
loadonce: true,
sortname: 'id',
viewrecords: true,
sortorder: "asc",
caption:"Services List",
multiselect: false,
onSelectRow: function(ids) {
if(ids == null) {
ids=0;
if(jQuery("#list3").jqGrid('getGridParam','records') >0) {
jQuery("#list3").jqGrid('setGridParam',
{url:"subgrid.php?q=1&id="+ids,page:1});
jQuery("#list3").jqGrid.trigger('reloadGrid');
}
}
else {
jQuery("#list3").jqGrid('setGridParam',
{url:"subgrid.php?q=1&id="+ids,page:1});
jQuery("#list3").jqGrid.trigger('reloadGrid');
}
}
});
jQuery("#list2").jqGrid('navGrid','#pager2',
{edit:false,add:false,del:false,multipleSearch:true});
jQuery("#list2").jqGrid('filterToolbar',
{stringResult: true,searchOnEnter : false});
jQuery("#list3").jqGrid({
url:'classes/ListServicesDetails.php?Id=2',
datatype: "json",
mtype: 'POST',
colNames: ['Id','ServiceId', 'Description', 'Details', 'Cost in (R)'],
colModel: [
{name:'Id',index:'Id', align:"center", width:30},
{name:'ServiceId',index:'ServiceId', align:"center", width:30},
{name:'Description',index:'Description', align:"center"},
{name:'Details',index:'Details', align:"left"},
{name:'Cost',index:'Cost',align:"center",width:30,formatter:'currency'},
],
width: 780,
height: 200,
rowNum:18,
pager: '#pager2',
loadonce: true,
sortname: 'id',
viewrecords: true,
sortorder: "asc",
caption:"Services Details List",
multiselect: false,
onSelectRow: function(id) {
alert(id);
}
});
jQuery("#list3").jqGrid('navGrid','#pager2',
{edit:false,add:false,del:false,multipleSearch:true});
});
Пожалуйста, если кто-то может помочь мне ...
Благодаря
Привет, Олег, Спасибо миллион - работает 100%. Если я еще не сказал этого - этот форум скалы! Спасибо – user330306
Это сработало для меня, а также мне не нужно было задавать параметры URL или страницы, спасибо! – Will
@Will: Добро пожаловать! Параметр url перед 'jqGrid.trigger ('reloadGrid')' специфичен для вопроса, но в большинстве случаев рекомендуется использовать параметр 'page: 1'. Причина следующая. Позвольте пользователю выбрать номер страницы 5 перед обновлением данных и после перезагрузки общее количество страниц будет 4. Если вы не сбросите «страницу», пользователь может увидеть пустую страницу 5 после обновления и не поймет причину это. Чтобы решить эту проблему, вы не можете установить 'page: 1' перед' reloadGrid'. См. Также http://stackoverflow.com/questions/3807623/jqgrid-paging-question/3808014#3808014 – Oleg