2017-12-19 4 views
1

검색 후 레코드에 대한 총 개수를 확인하고 싶습니다. trigger("reloadGrid") 이후에 getGridParam("records")이 실행되지 않습니다.방아쇠 ("reloadGrid") 후에 getGridParam()을 사용하여 전체 개수를 얻는 방법

여기 내 코드입니다.

goSearch : function() { 
    var jsonObj = {}; 
    var $jqGrid = $("#jqGrid"); 

    if ($("#selectId").val() != "c") { 
     jsonObj.serviceImplYn = $("#selectId").val(); 
    } 

    $jqGrid.setGridParam({ 
     datatype  : "json", 
     postData  : {"param" : JSON.stringify(jsonObj)}, 
     loadComplete : function(data) { 

      if (data.rows.length < 1) { 
       alert("no data."); 
      } 
     } 
    }).trigger("reloadGrid"); 

    //following line not running! first run value = 0, second = success 
    var totalCnt = $jqGrid.getGridParam("records"); 

    console.log(totalCnt); 
} 

먼저 goSearch()의 총 카운트를 얻는 방법은 무엇입니까? 당신이 얻을 수 있도록, 당신은 아약스 요청이 이루어질 때까지 데이터를로드 할 때까지 대기 할

$jqGrid.setGridParam({ 
    datatype  : "json", 
    postData  : {"param" : JSON.stringify(jsonObj)}, 
    loadComplete : function(data) { 

     if (data.rows.length < 1) { 
      alert("no data."); 
     } 
     var totalCnt = $jqGrid.getGridParam("records"); 
    } 
}).trigger("reloadGrid"); 

을 게시하거나 setTmeout 기능에서 실행

loadComplete에서
var totalCnt = $jqGrid.getGridParam("records"); 

명령을 실행해야 하나

+0

현재 코드는'VAR totalCnt = $ jqGrid.getGridParam ("기록")를 실행, '**가 ** 데이터 전에 ** 서버에서 데이터를로드 ** Ajax 요청을 시작하지만, 이후 로드됩니다. 데이터가로드 된 후에 * 실행될'loadComplete' 내부의'var totalCnt = $ jqGrid.getGridParam ("records"); – Oleg

답변

0

필요한 정보.

setTimeout(function() { 
    var totalCnt = $jqGrid.getGridParam("records"); 
}, 300); 
관련 문제