Struts2 jQuery Grid重载问题

时间:2014-07-03 06:48:40

标签: jquery struts2 jqgrid struts2-jquery 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 个答案:

答案 0 :(得分:0)

网格完成后,它会检查onGridCompleteTopics的订阅者。

  

在所有数据之后发布的以逗号分隔的主题列表   加载到网格中,所有其他进程都已完成。


当网格成功时,它会检查onSuccessTopics的订阅者。

  

成功完成元素ajax请求时发布的以逗号分隔的主题列表(如果提供,将覆盖目标容器的设置)。


如果找不到主题事件的订阅者,则不会将其绑定到网格。因此,请确保在检查主题订阅者之前订阅网格。

查看主题的example网格。

重新加载网格的代码

</sjg:grid>
<script type="text/javascript">
  $(document).ready(function(){
    $("#reportGrid").trigger("reloadGrid");
  });
</script>