2012-11-27 2 views
0

일부 선택 항목과 페이징 등을 위해 필자 자신의 하위 클래스를 작성했습니다. 그러나 이들 모두는 문자열을 반환해야하는 renderer()으로 작업했습니다.ExtJS4 Column 클래스는 어떻게 작동합니까?

괜찮 았는데, 이미지 태그를 몇 개 만들었습니다.

하지만이 클래스는 어떻게 세부적으로 작동합니까? 기술적으로 문제가없는 셀에 차트를 표시하는 하위 클래스가 필요하지만 renderer()은 문자열에 대해서만 작동하기 때문에 올바른 위치로 보이지 않습니다.

클래스가 모든 행에 대해 인스턴스화됩니까? 또는 실제로 열에 대한 하나의 인스턴스입니다. 메서드는 필요한 데이터가있는 모든 행에 대해 호출되며 인스턴스는 행에 대한 상태를 유지하지 않습니다.

답변

1

메커니즘은 실제로 Ext.grid.column.Column에 구현되며, 해당 열에 대해 하나씩 있습니다.

앞서 언급 한 것처럼 renderer() 함수는 문자열을 반환합니다.이 문자열은 HTML 문자열이 될 수 있습니다 (다소 복잡 할 수 있습니다 - 표준 열에 대해 ExtJs에서 사용하는 템플릿을 살펴보십시오). 하지만 구성 요소 (차트)를 반환 할 수는 없습니다.

내 자신의 이해와 비슷한 질문에 대한 답변을 바탕으로 ExtJs는 그리드 셀 내에서 구성 요소를 렌더링하는 직접적인 방법을 제공하지 않습니다. 당신이 정말로 그것에 대해 생각한다면 - 당신은 의도 된 역할보다 훨씬 더 많은 것을 그리드에 요구하고 있습니다. 체크 박스와 같은 간단한 사용자 상호 작용 기능을 추가하여 원시 당 레코드를 표시하도록 설계되었습니다.

하지만 정말로 묻고있는 것은 레이아웃 차트의 방법입니다. 어떤 문제에 대해서는 당신이 Table layout을 들여다 볼 것을 제안합니다.

또는 차트를 dom 요소에 렌더링 할 수 있어야합니다.이 요소는 사용자 정의 열 템플릿에 정의됩니다. 그러나 나는 이것이이 문제와 관련이 있다고 생각할 것이다.

+0

빠른 답 : 고맙습니다. :) 그리드에서 스파크 라인을 렌더링하려고합니다. 그래서 내 자신의 열 하위 클래스를 작성하는 것에 대해 생각했습니다. 그러나 전체 코드를 통해 디버깅 한 후에는 올바른 것으로 보입니다. 생성 된 ID를 사용하여 DOM 요소를 출력하고 생성 된 차트를이 요소에 렌더링하여 플렉스 크기를 조정하는 것이 문제가 될 수 있습니다. \ –

관련 문제