1

我的页面中有以下 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');
});

但我看到的是网格填充了新数据,但未清除分组;我必须按下网格底部的重新加载按钮来刷新网格,然后数据表示看起来很好。

我有一个表单,其中存在 grid 、 anchor 和其他 HTML 元素,根据这些我选择不同的标准并单击按钮,填充网格,当我更改标准时网格重新填充,但保留旧分组。我必须按下网格中的重新加载按钮来解决这个问题。

4

1 回答 1

0

网格完成后,它会检查onGridCompleteTopics.

在所有数据加载到网格并且所有其他过程完成后发布的以逗号分隔的主题列表。


当网格成功时,它会检查onSuccessTopics.

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


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

查看带有主题的网格示例

重新加载网格的代码

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

于 2014-07-05T17:28:02.820 回答