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 に答える