2014-06-24 2 views
1

많은 열이있는 매우 큰 그리드가 있습니다. 사용자가 버튼을 클릭하면 셀별로 셀 전체를 분석하는 함수가 호출됩니다. 특정 열에서 변경 사항을 찾지 못하면 숨기거나 열을 계속 볼 수 있습니다. 아주 많은 수의 열이 숨겨져있는 경우가 많지만,이 작업 (이 모든 렌더링을 사용하여 열을 숨기는 작업)은 매우 무겁기 때문에 코드가 너무 오래 실행되는 것을 브라우저가 경고 할 수 있습니다. I는 다음과 같이 숨어 않습니다그리드 열을 효과적으로 숨기는 방법

var cols=grid.headerCt.getGridColumns(); 
Ext.each(cols, function (item, index, all){ 
    if(condition) item.setVisible(false); 
}); 

내가 Ext.suspendLayouts()Ext.resumeLayouts()을 사용하려고하지만 버그로 연결됩니다. 작업이 이제는 더 빨리 실행되지만 열 숨기기 대신 열 제목 만 숨겨집니다. 그래서, 나는 더 최적의 솔루션을 필요로합니다.

답변

3

suspendLayouts() 및 후속 resumeLayouts()는 이동 방법 중 하나입니다. 레이아웃을 다시 시작한 후에 grid.getView().refresh()으로 전화하면됩니다.

또 다른 옵션은 재구성을 호출하는 것이지만 열 메뉴에서 "숨겨진"열을 제거합니다.

+0

감사합니다. 당신은 언제나처럼 옳습니다. – Jacobian

관련 문제