2013-10-03 2 views
3

에 열의 폭을 얻을 방법이 칼럼의 감사의 폭을 얻을 수있는 방법 의 ExtJS 그리드 - 렌더러 기능

columns: [ 
     ... 
     { text: 'Name', dataIndex: 'name' , width: 200, 
      renderer: function (value) { 
        // how to get width of this column (200) 
        //alert(this.width); // this is width of gridpanel 
      } 
     } 
     ... 
], 

처럼 내 칼럼의 gridpanel 하나 있습니다.

답변

7

상당히 이상한 방법은 아니지만 제대로 작동합니다. 값 외에도 렌더러 함수에 전달되는 다른 많은 값이 있습니다. 당신은 그리드 패널보기를 얻을하는 구성 요소 쿼리를 사용할 수 있습니다, 또는

renderer: function (value, metaData, record, rowIndex, colIndex, store, view) { 
    return view.ownerCt.columns[colIndex].getWidth(); 
} 

: DOM 검사를 통해, 이것은 당신에게 열 너비를 얻을 것이다, 그러나 나는 나는 그들이는 ExtJS를 업데이트 할 일을 믿을 것이 뭔가 생각하지 않습니다

renderer: function (value, metaData, record, rowIndex, colIndex, store, view) { 
     var grid = Ext.ComponentQuery.query('#gridId')[0]; 
     return grid.columns[colIndex].getWidth(); 
    } 

난 정말이 경우에 더 나은 옵션이 무엇인지 모르는, 정말 그들이 통과 이유를 알고하지 않습니다, 열을 찾기 위해 행 인덱스를 사용하고 그것의 수는 동일한 방식으로 폭 gridappel보다는 gridview를 렌더러 함수의 뷰로 사용하십시오. 어쨌든, 이것은 시작해야합니다, 행운을 비네.