2013-05-23 1 views
1

I는 AJAX 요청으로부터있는 jqGrid getGridParam 데이터 항목의 ID를 반환하지

데이터가 (외부로 나있는 jqGrid의 빌트인 Ajax를 사용하지 평균) 외부 Ajax 요청에서 발생하는 로컬 데이터를 사용하는 그리드가 그리드가 로컬 데이터로 전달되고 그리드가로드되도록 설정됩니다.

window.grid = $(window.tableName).jqGrid({ 
      datatype: "local", 
      data: DataFromResponse, 
      height: "auto", 
      autowidth: true, 
      hidegrid: false, 
      ignoreCase: true, 
      loadonce: true, 
      pager: window.pagerName, 
      rowNum: 10, 
      viewrecords: true, 
      gridview: true, 
      caption: '', 
      colNames :[cols], 
      colmodel :[]{cols}, 
      gridComplete: function() { 
       CreateButtons(); 
      }); 

당신이 그리드는이 단계에서 기본적인 알 수 있듯이

그러나 우리는 '버튼'우리가이 작업을 수행 할 CreateButtons에게 방법을 사용라는 칼럼에서 어떤 버튼을 추가해야합니다.

이 함수의

function CreateButtons(){ 
    var grid = $(window.tableName); 
    var data = grid.jqGrid('getGridParam', 'data'); 
    $.each(data, function(index, item){ 
     var cl = item._id_; 
     alert(cl); 
    });  
} 

경고 나에게 그리드가 설정 한 행의 ID를 제공해야하지만, 어떤 아이디어

답변

3

_id_ 내부 data 매개 변수에 존재하는 속성을 작동하지 않는 경우에만 원격 소스에서로드 된 데이터 (datatype"json", "xml" 인 경우) 및 loadonce: true 옵션이 사용 된 경우 데이터를 로컬로로드하는 경우 (datatype: "local"을 사용하는 경우) _id_이 존재하지 않습니다.

올바르게 그리드에게 (귀하의 경우 DataFromResponse) data 매개 변수에 의해 지정된 데이터를 입력하면

는 열 데이터를 채우는 데 사용되는 다른 속성과 함께 id 속성이 포함 된 항목의 배열입니다. 한 가지 다른 옵션은 일부 열에 key: true을 지정하는 것입니다. 이 경우 행에 대한 id이 열에서 가져옵니다.

당신이 지정 (매우 나쁘다) id 정보 및 모든 로컬 데이터가 두 개의있는 jqGrid 옵션을 얻을 필요가있는 jqGrid에 의해 생성 된 식별자 포괄적으로 접근 할 필요가없는 경우 : _indexdata을. 객체 _index에는 그리드의 모든 ID가 등록 정보로 포함됩니다. id 속성의 값은 id에 해당하는 data 배열의 정수 인덱스입니다. 따라서 for-in 루프를 사용하여 모눈의 모든 ID를 열거 할 수 있습니다 (열거 속성 _index 필요). 자세한 내용은 the answerthis one을 참조하십시오.

당신은 또한 gridComplete 안에있는 격자의 열에 단추를 만들었다 고 썼습니다. 접근 방식이 좋지 않은 것 같습니다. gridview: true 옵션 (the answer 참조)과 함께 맞춤형 포매터를 사용하는 것이 좋습니다. 또한 gridComplete을 전혀 사용하지 않는 것이 좋습니다. loadComplete을 사용하는 것이 좋습니다. 자세한 내용은 the answer을 참조하십시오.

+0

다시 한번 귀하의 답변은 훌륭합니다. – Deviland

+0

로컬 데이터를 사용하여 비 로컬 데이터를 사용하여 표를 편집 중이므로 key = true로 설정했지만 위에서 설명한 이유로 ID를 잃어 버렸습니다. 나는 키로 설정된 컬럼의 인덱스로 바뀌었고 모두 감사했습니다. – Deviland

+0

@Deviland : 당신은 환영합니다! – Oleg