2013-09-02 2 views
2

는 내 데이터를 내보내려면이 방법을 사용하십시오보이는 데이터 만 내보내는 방법은 무엇입니까?

$('#list').jqGrid('getRowData') 

을하지만 지금은 getRowData 표시 열에서 데이터 만 반환합니다.

나는 그렇게처럼 내 열을 숨기 :

$("#list").jqGrid('hideCol',columnName) 

합니까있는 jqGrid 박스에서이 기능을 지원? 또는 맞춤 설정을해야합니까?

답변

1

방법 getRowData에는 보이는 데이터 만 내보내는 옵션이 없습니다. 당신이 데이터를해야하는 경우 그래서 당신에게 두 가지 구현 방법을 제안 할 수 있습니다

  1. 당신은 getRowData을 사용하여 모든 데이터를 가져온 다음 데이터를 결과의 모든 항목에서 불필요한 속성을 제거 할 수 있습니다. 전화 $('#list').jqGrid('getGridParam', 'colModel')은 그리드의 열 배열을 가져옵니다. colModel 배열의 모든 항목에는 hidden 속성이 포함됩니다. hidden 속성이 true 인 경우 해당 열은 보이지 않으며 getRowData이 반환하는 모든 배열 항목에서 해당 항목의 속성을 name 삭제할 수 있습니다.
  2. 표시 가능한 데이터 만 내보내는 getRowData의 고유 한 수정을 정의 할 수 있습니다. 당신이 (here 참조) getRowData의 소스 코드의 복사본을 만들 필요가 이렇게하려면 결과 방법은 당신이 필요로 할 것입니다

    if (nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && !$t.p.colModel[i].hidden) { 
    

if (nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') { 

에서 the line의 수정을합니다.

the answer에서 jqGrid에 새 메소드를 추가하는 방법에 대해 설명했습니다. 따라서 코드는 다음과 같을 수 있습니다

$.jgrid.extend({ 
    getVisibleRowData: function(rowid) { 
     // here can be the copy of the code of getRowData 
     // starting with the line 
     // var res = {}, resall, getall=false, len, j=0; 
     // see https://github.com/tonytomov/jqGrid/blob/v4.5.2/js/grid.base.js#L3027-L3061 
     // you need just make the described above 
     // modification of one line of the code 
    } 
}); 

$('#list').jqGrid('getVisibleRowData')과 같은 새로운 방법을 사용할 수 있습니다.

관련 문제