2012-01-25 4 views
4

여기 그때 내 데이터에 어떤 필터를 적용 FilteredData 불리는 또 다른 배열을 생성 ahve있는 jqGridjqGrid에 동적으로 데이터를 할당하는 방법은 무엇입니까?

$("#ptDataGrid").jqGrid({ 
        datatype: 'local', 
        data: arrSpecData, 
        colModel: colmod, 
        rowNum: 10, 
        rowList: [10], 
        pager: '#ptPager', 
        gridview: true, 
        rownumbers: false, 
        viewrecords: true, 
        loadonce:false, 
        hidegrid: false, 
        autowidth: true, 
        caption: 'Crank Pin', 
        height: '100%', 
       }); 

을 만들어 내 코드이다. 이제이 새로운 데이터 소스를 그리드에 할당하려고합니다. 내가 아는 모든 접근 방식을 시도했다. 그러나 아무 것도 효과가 없었습니다. 그렇다면 어떻게 새로운 데이터 소스를 jqGrid에 동적으로 할당 할 수 있습니까? 그것을 지정하는 방법을 제안하십시오.

   dataGrid.setGridParam({ data: filterdData }); 
       dataGrid[0].refreshIndex(); 
       dataGrid.trigger("reloadGrid"); 

아직도 내가 무엇입니까 같은 결과가 :(

해결 방법 # 1 : 먼저 setGridParam의 대한 새로운 data을 설정 한 다음 refreshIndex 메소드를 호출 할 수

$('#divGrid').children().remove(); 
$('#divGrid').html(' <table id="ptDataGrid" class="jqgriddata"><tr><td/></tr></table><div id="ptPager"></div> '); 

createGrid(filterdData,true); 
+0

내 제안을 어떻게 테스트했는지 모르겠다. 내 답변의 "업데이트 된"부분에서 나는 보푸라기가 작동하는 데모에 추가했습니다. – Oleg

+0

@Oleg, 나는 또한 귀하의 접근 방식을 시도했습니다. 그러나 예상대로 작동하지 않았습니다. 업데이트 된 결과와 이전 데이터도 표시됩니다. – Dinesh

+0

미안하지만, 틀렸어! 업데이트 된 데이터 만 * 표시합니다. 실험을 반복하거나 내 데모에서 좀 더주의 깊게보십시오. html 페이지를 저장하고,'mydata1'과'mydata2'에서 데이터를 수정하여 실제로 작동하는지 확인할 수 있습니다. – Oleg

답변

5

(참조 the answer)를 사용하여 내부에서 사용하는 _index 매개 변수를 업데이트하십시오.

업데이트 : 접근 방식이 작동하는지 확인하려면 the demo의 "데이터 변경"버튼을 클릭하십시오.

+0

당신의 데모가 저에게 효과적 이었지만, 제 코드와 통합되었을 때 저도 똑같은 문제를 겪었습니다. 나는 내 코드에 뭔가 빠져 있다고 생각한다. 내가 확인합니다. – Dinesh

+0

@Dinesh : 사용하는 코드의 작은 조각 만 게시하므로 오류를 찾을 수 없습니다. jqGrid는 내부적으로'data'를 설정하고'refreshIndex'를 호출하지 않습니다. 그래서 그것은 올바른 방법입니다. 그리드에서 정확히 작동하지 않는 것은 무엇입니까? 여러분의 에러는'colModel' 또는 여러분이 사용하는'arrSpecData' 데이터에있을 수 있습니다. 이들은 질문의 가장 중요한 부분입니다. – Oleg