2012-04-02 4 views
0

다른 데이터 유형에서 그리드에서 일부 열 (하나가 아님)을 숨길 필요가 있습니다. column.hide() 메서드를 사용하고 있지만 너무 느리게 작동합니다.ExtJS4 : 열 숨기기. 너무 느림

열에 숨김 속성을 설정하면 그리드보기를 새로 고치는 메서드를 알 수 없습니다.

grid.view.refresh() - 헤더가 아직 있습니다.

을 숨긴 후 그리드를 어떻게 새로 고칠 수 있습니까? true 속성?

또는 다른 방법으로 ...

+0

그리드를 생성하는 코드를 줄 수 있습니까? – Amalea

+0

Standart 만들기. Sencha 문서에서와 마찬가지. 그리드를 만드는 동안이 아니라 열을 숨기고 싶습니다. 그리드가 생성되면 일부 버튼 (일부 데이터 조건이 있음)을 클릭 할 수 있으며 그리드는 서버에서 해당 조건으로로드됩니다. 그런 다음 일부 열을 숨기려고합니다. 단추 처리기 코드에서 일부 열을 숨기려고합니다. –

+0

아마도이 질문에 제안 된 답변을 시도해보십시오. http://stackoverflow.com/questions/5680080/how-to-dynamically-show-hide-columns-in-extjs-grid – Amalea

답변

1

나는 동일한 문제가있었습니다. 열의 가시성과 크기를 설정해야합니다. 표준 방법을 사용하면 24 초 (~ 120 열)가 소요됩니다.

내 솔루션 :

var grid = ...; 
for (var i = 0; i < grid.columns.length; i++) { 
    var column = grid.columns[i]; 
    column.hidden = false // or true, instead column.setVisible(bool); 
    column.width = 100 // instead column.setWidth(100); 
} 
grid.headerCt.updateLayout(); 

는 이제 24 번이 아닌 초 114 밀리합니다.

+0

이 솔루션은 마우스로 열의 크기를 조정할 때 아티팩트를 유발할 수 있으므로주의하십시오. 다른 방법 (조금 천천히 ~ 1 초) Ext.suspendLayouts(); for (var i ....) {...} Ext.resumeLayouts (true); – atott

+0

가장 좋은 방법은 그리드 방법 재구성 ... –