Struts2 jQuery Grid проблема с перезагрузкой
У меня есть следующая jQGrid на моей странице
<sjg:grid id="reportGrid"
gridModel="gridModel"
autowidth="true"
reloadTopics="refreshGrid" gridview="true"
onGridCompleteTopics="gridLoadComplete"
onSuccessTopics="dataLoadCompleted"
navigator="true"
pager="true"
navigatorSearch="true"
navigatorSearchOptions="{multipleSearch:true}"
scroll="true"
rowNum="10000"
hoverrows="false"
groupColumnShow="false"
groupField="['field1','field2']"
href="webReport"
formIds="myform"
dataType="json"
loadonce="true" >
..........................
..........................
..........................
</sjg:grid>
и кнопка
<sj:a button="true"
buttonIcon="ui-icon-refresh"
buttonText="true"
onclick="reloadGridFunc();">
Submit
</sj:a>
и в JS у меня есть это
function reloadGridFunc()
{
$("#reportGrid").jqGrid('setGridParam',{datatype:'json'});
$.publish("refreshGrid");
// $("#reportGrid")
// .jqGrid('setGridParam',{url:"userReport",datatype:"json"}).
trigger("reloadGrid");
}
$.subscribe('gridLoadComplete', function(event, data) {
// $("#reportGrid").jqGrid('clearGridData');
// $('#reportGrid').setGridParam({ page: 1, datatype: "json"})
// .trigger('reloadGrid');
// $("#reportGrid").trigger('reloadGrid');
});
$.subscribe('dataLoadCompleted', function(event, data) {
// $("#reportGrid").trigger('reloadGrid');
});
но я вижу, что сетка заполняется новыми данными, но группировка не очищается; Я должен нажать кнопку перезагрузки в нижней части сетки, чтобы обновить сетку, и после этого представление данных выглядит хорошо.
У меня есть форма, в которой существует сетка, якорь и другие элементы HTML, и в соответствии с ними я выбираю разные критерии и нажимаю кнопку, когда сетка заполняется, и когда я меняю критерии, сетка заполняется, но старая группировка сохраняется, я должен нажмите кнопку перезагрузки в сетке, чтобы исправить это.
1 ответ
Когда сетка завершена, она проверяет подписчиков onGridCompleteTopics
,
Список разделенных запятыми тем, которые публикуются после загрузки всех данных в сетку и завершения всех остальных процессов.
При успешном выполнении сетки проверяются подписчики onSuccessTopics
,
Список разделенных запятыми тем, опубликованных после успешного выполнения ajax-запроса элемента (переопределит настройки целевого контейнера, если он указан).
Если подписчики на событие темы не найдены, они не будут привязаны к сетке. Итак, убедитесь, что вы подписались на сетку, прежде чем она проверяет подписчиков темы.
Смотрите пример сетки с темами.
Код для перезагрузки сетки
</sjg:grid>
<script type="text/javascript">
$(document).ready(function(){
$("#reportGrid").trigger("reloadGrid");
});
</script>