У меня проблема с Jqgrid, у меня две сетки на одной странице, а onclick в строке первой сетки необходимо перезагрузить вторую сетку.
Я на 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}); });
Пожалуйста, если кто-то может мне помочь …
благодаря
Оба jqGrids имеют параметры loadonce: true
. Это означает, что после первой загрузки datatype
сеток будет изменен с "json"
на "local"
. Чтобы перезагрузить вторую сетку, вы должны сбросить параметр datatype
на "json"
вместе с параметрами url
и page
.