2014-12-10 4 views
0

마스터/세부 그리드에서 중복 행을 숨겨야합니다. 이 바이올렛 http://jsfiddle.net/tPB8Z/1465/ 일부 셀 기반 사용자 선택을 숨 깁니다 찾았지만 내 코드 http://jsfiddle.net/alebotello/axvhtrcL/21/addRowCls()보기 격자에서이 적용 할 때 행을 작동하지 않았다. 마스터 및 세부 그리드는 동일한 매장을 공유했기 때문에 스토어를 수정하거나 새로운 마스터 그리드를 만들지 않고 마스터 그리드에서 행 가시성 만 변경하려고합니다. 마스터 격자 청취자Extjs 격자보기에서 행 숨기기가 작동하지 않습니다.

:

.oculto{ 
    display: none; 
} 

답변

0

수정은 매우 간단

afterrender: function (comp) { 
      var st = comp.getStore(); 
      var arr = []; 
      var i = 0; 
      var view = comp.getView(); 
      st.each(function (record) { 
//    console.log(record); 
       if (arr.indexOf(record.data['idOrden']) === -1) { 
        arr.push(record.data['idOrden']); 
       } else { 
        view.removeRowCls(record, 'x-grid-view'); 
        view.addRowCls(record, 'oculto'); 
//     console.log(view);      
       } 
       i++; 
      }); 

CSS 'viewready'에서 'afterrender'의 마스터 격자 수신기를 변경.

그리드와 같은 Ext.view.View 기반 컴포넌트의 대부분의 경우, 목록 개발자는 post 렌더 DOM 조작을 수행하기 위해 afterrender 대신 viewready 이벤트를 사용해야합니다.

API 문서 및 가이드에 설명되어 있습니다. jsfiddle 위에서 포크

viewready: function (comp) { 
     var st = comp.getStore(); 
     var arr = []; 
     var i = 0; 
     var view = comp.getView(); 
     st.each(function (record) { 
      debugger; 
      if (arr.indexOf(record.data['idOrden']) === -1) { 
       arr.push(record.data['idOrden']); 
      } else { 
       view.removeRowCls(record, 'x-grid-view'); 
       view.addRowCls(record, 'oculto'); 
       console.log(view);      
      } 
      i++; 
     }); 
    } 

근무 예 : - http://jsfiddle.net/chetanbh/rpbdq4ex/

관련 문제