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> 

Другие вопросы по тегам