2014-12-30 7 views
1

사용자 정의있는 jqGrid 및 2 개의 다른 방법은 나에게 다른 결과주고있다 해왔 (홀수) getGridParam/getCol 문제 : 내가 "직접"입력 할 경우있는 jqGrid

이 방법은 나에게 기록의 정확한 총을 줄 것이다 (참조 & 입력 = URL의 1) :

$('#1ASList').jqGrid({ 
    url: DateFile+'Data.php?Load=AllianceStatus&Input=1', 
    datatype: 'json', 
    colModel: [{name:'A',width:64,align:'left'},{name:'C',width:25,align:'right',formatter:'integer'}], 
    altRows: true, 
    height: 102, 
    gridComplete: function(){ $('#1ASTtl').empty().html('[ '+$(this).jqGrid('getGridParam','records')+' ]'); } 
}); 

이 방법은 나에게 공백을 줄 것이다 제 3 그리드는 나에게 내가 원하지 않는 전체 결과를 줄 것이다. 각 그리드에서 나에게 자체 결과를 제공하기를 원합니다.

for(var iAlliS = 0; iAlliS < 3; iAlliS++){ 
    $('#'+iAlliS+'ASList').jqGrid({ 
     url: DateFile+'Data.php?Load=AllianceStatus&Input='+iAlliS, 
     datatype: 'json', 
     colModel: [{name:'A',width:64,align:'left'},{name:'C',width:25,align:'right',formatter:'integer'}], 
     altRows: true, 
     height: 102, 
     gridComplete: function(){ $('#'+iAlliS+'ASTtl').empty().html('[ '+$(this).jqGrid('getGridParam','records')+' ]'); } 
    }); 
} 

둘 다 다른 결과를 얻는 이유는 무엇입니까? 내가 여기서 무엇을 놓치고 있니? (FooterData를 사용하지 않고 모든 사용자 정의 결과)

+0

눈금 수를 0에서 2로 설정 하시겠습니까? 나는 당신의 for 루프'for (var iAlliS = 0; iAlliS <3; iAlliS ++)를 의미합니다. 그렇다면 어떤 종류의 요청이 서버로 전송되는지 보여줄 수 있습니까? Chrome'F12' ->'Network'. 당장 당신이 잘못 생각하는 것 같아요. –

+0

http://prntscr.com/5miflu 친구 (그리드 0)는 0, 중립 (그리드 1)은 13, 적대 (그리드 2)는 64 빨강은 [0]을 보여 주기로되어 있습니다. 위와 같이 '개인'이라고 표현하면 작동합니다. 대신 for() 루프를 사용하면 4 번째 그리드 인 Reds (그리드 3)의 합계를 얻을 수 있습니다. 그래서 질문은, for() 루프에 무엇이 잘못 되었습니까? – sgkdnay

+0

Chrome에서 F12를 사용하면 올바르게 아약스를 당기는 것으로 표시됩니다. 그리드 배치가 제대로 완료되었지만 문제는 잘못된 것입니다. 제목이 " – sgkdnay

답변

1

자, 이것을 시도해보십시오. gridComplete 이벤트를 jqgrid으로 사용하는 대신 loadComplete을 사용하면 서버의 전체 데이터가있는 data이라는 하나의 매개 변수가 있습니다. 이 같은 코드를 변경할 수 있습니다 :

for(var iAlliS = 0; iAlliS < 3; iAlliS++){ 
    $('#'+iAlliS+'ASList').jqGrid({ 
     url: DateFile+'Data.php?Load=AllianceStatus&Input='+iAlliS, 
     datatype: 'json', 
     colModel: [{name:'A',width:64,align:'left'},{name:'C',width:25,align:'right',formatter:'integer'}], 
     altRows: true, 
     height: 102, 
     loadComplete: function(data){ $('#'+iAlliS+'ASTtl').empty().html('[ '+data.records+' ]'); } 
    }); 
} 

그래서 당신은 DOM에서 데이터를 얻을 서버에서 오는 JSON에서 직접 얻기 위해 더 이상 문제가 안된다.