2011-10-20 3 views
6

jqGrid에서 선택된 행에 행 객체를 얻으려면 어떻게해야합니까? 나는 세포의 가치가 아니라 실제적인 대상이 필요하다. 설명서를 읽었지만 행 개체를 제공 할 메서드를 찾을 수 없습니다. 사용자 정의 포맷터를 사용하기 때문에 cellValue가 작동하지 않습니다.onSelectRow의 jqGrid 행 객체

답변

9

custom formatter을 구현하고 getCell 또는 getRowData에 대해 셀 값을 가져 오려면 unformat 기능을 구현해야합니다.

"나는 세포가 아닌 실제 개체가 필요합니다."라는 말의 의미가 명확하지 않습니다. loadonce: true 옵션을 사용하는지 여부와 서버에서 데이터를로드하여 서버에 게시 할 형식을로드하는지 여부도 사용자가 어떤 datatype을 사용하는지 명확하지 않습니다.

datatype: 'local'을 사용하거나 loadonce: true을 사용하는 경우 내부 data_index 매개 변수가 채워집니다. 당신은 단지 개체를 저장할 수있는 서버에서 데이터를 datatype: 'local'를 사용하거나 loadonce: true를 사용하여로드하지 않으면

var rowData = this.p.data[this.p._index[rowid]] 

또는

var grid = $(this), 
    localdata = grid.jqGrid('getGridParam', 'data'), 
    indexes = grid.jqGrid('getGridParam', '_index'), 
    rowData = localdata[indexes[rowid]]; 

을 사용할 수 있습니다 rowid에 의해 그리드에서 원시 데이터를 얻으려면 (객체에서) 변수에서 서버 응답의 데이터를 나타냅니다. loadComplete 이벤트 처리기에는 서버에서 게시 된 원시 데이터 인 data 매개 변수가 하나 있습니다. 따라서 필요한 데이터를 객체 (rowid에 의해 yut 객체를 얻을지도)에 저장하고 onSelectRow 이벤트 핸들러 내부에서 사용할 수 있습니다. 내 프로젝트에서

onSelectRow: function(rowid) { 
    var row = $(this).getLocalRow(rowid); 
    // do something with row 
} 

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods

+0

감사합니다, 그것은 올바른 방향으로 나를 가리켰습니다 – SystemParadox

+1

@ SystemParadox : 천만에요! 나는 당신이'getLocalRow' 메소드를 검사 할 것을 권한다. 작은 코드 예제 및 추가 정보는 [대답] (http://stackoverflow.com/a/9145342/315935) 또는 [another one] (http://stackoverflow.com/a/10362294/315935)을 참조하십시오. [소스 코드] (https://github.com/tonytomov/jqGrid/blob/v4.3.2/js/grid.base.js#L3494-3505) 메소드가 매우 작기 때문에이를 읽는 것이 좋습니다. . – Oleg

+0

나는 그것을 간과했음을 인정해야한다. 그러나 나중에 loadComplete에서 사용할 수 있도록 데이터를 저장하는 것은 매우 가치있는 기능이다. 데이터 유형 'local'또는 loadonce :를 사용하지 않았기 때문에 true. 나는 왜 그것이 어떤 종류의 'rawdata'속성에 기본적으로 저장되지 않는지 궁금하다. 어쨌든 Oleg을 지적 해 주셔서 감사합니다. +1 – Steven

3

당신은 getInd 및 getLocalRow 방법을 사용할 수 있습니다

ondblClickRow : function(rowid,iRow,iCol,e) { 
    $($("#completeDetail").getInd(rowid,true)).find(":first").click(); 
} 

이 행을 찾고 찾을 수없는이 증가 할 행을 해결할를

이 기능을 사용하십시오 ->getInd(rowid,rowcontent).

이 메소드는 rowcontent가 false (기본값)로 설정된 경우 id=rowid에 지정된 모눈 테이블의 행 인덱스를 반환합니다. rowcontent가 true로 설정된 경우 항목 행 객체를 반환합니다. rowid를 찾을 수 없으면 false를 반환합니다.