2014-06-17 3 views
1

Extjs 4.2에 그리드가 있고 로우 값을 비교하고 특정 행에 .addCls()를 호출 할 수 있도록 행 요소를 가져와야합니다. 시도했다. getNodes()하지만 노드에서 .addCls() 호출 할 수 없습니다.extjs에서 행 요소를 얻는 방법 4.2 그리드

이미 양식 필드와 함께이 일을하고 있지만 너무 그리드 행으로 작업을 수행해야합니다

myForm.getForm().getFields().items[i].getEl().dom 

UPDATE : 이것은 양식 필드와 함께 일을하고 무엇을 나는 비슷한 할 필요가 그리드 셀. 처음에는 그리드 행에 클래스를 추가해야한다고했지만 실제로는 그리드 셀에 클래스를 추가해야합니다. 당신은 그리드의 행을 얻을 후 <td> 태그를 얻을 수 query()를 사용하는 grid.getView().getNodes()을 사용하여 달성 할 수 원하는 것은

var myFormAItems = myFormA.getForm().getFields().items; 
var myFormBItems = myFormB.getForm().getFields().items; 

for (i = 0; i < prodItems.length; i++) { 
    if (myFormAItems[i].getEl().dom.textContent != myFormBItems[i].getEl().dom.textContent) { 
     myFormAItems[i].addCls('highlightDiff'); 
    }; 
} 

답변

3

. 그냥 사용자 정의 클래스를 적용해야하는 경우

, 이것은 간단하다 :

당신은 그리드보기에서 기능 getRowClass()을 덮어 그리드의 각 행에 대해 CSS 클래스를 추가 할 수 있습니다. 그리드 구성의 viewConfig 옵션이이 용도로 사용됩니다.

Ext.create('Ext.grid.Panel', { 
    // other options 
    viewConfig: { 
     getRowClass: function(record, rowIndex, rowParams, store){ 
      if (record.get('property') == 'value'){ 
       return 'my-custom-class'; 
      } 
     } 
    } 
}); 

fiddle을 확인하시기 바랍니다.

+0

정말 하나의 그리드에 대한 행 배열이 필요하므로 다른 그리드의 행 배열과 비교 한 다음 차이가 있다면 클래스를 추가하십시오. getRowClass로 어떻게 할 수 있는지 알 수 없습니다. 모든 행이있는 표에서 얻을 수있는 항목 배열이 있습니까? 있어야 할 것처럼 보인다. – user2665267

+0

정확히 당신이 찾고있는 차이점은 무엇입니까? 당신은 무엇을하려고하는지 예를 들어 줄 수 있습니까? 'HTML' 테이블의 행을 내가 아는 한 수행 할 수 없으므로 그리드의 행을 가져옵니다. 당신이 할 수있는 일은 각 그리드의 관련 스토어의 레코드를 얻는 것입니다. – romifz

+0

내가 뭘하려고하는지에 대한 자세한 정보로 내 질문을 업데이트했습니다. 원래 질문에 대한 정보가 부족하여 죄송합니다. – user2665267

관련 문제