2010-07-14 2 views
2

SmartGWT의 TreeGrid 객체를 사용하여 계층 적 데이터를 표시하려고합니다. 데이터가 이질적이며 모든 요소가 동일한 유형이고 동일한 필드가있는 것은 아닙니다. 예를 들어 다음 데이터가 있습니다.SmartGWT DataSource를 이질적인 데이터로 사용하는 방법

Home 
|-Room 1 
|-Room 2 
    |-Table 
    |-Chair 

모든 개체에 고유 한 ID가 있습니다. 집에는 들판이 없습니다. 방에는 이름이 있습니다. 테이블에는 이름과 의자에없는 int 필드 "seatsNumberOfPeople"이 있습니다. 의자에는 테이블에없는 가능한 값 목록에서 가져온 필드 "색"이 있습니다.

TreeGrid의 개체를 선택하면 해당 개체의 필드를 편집 할 수있는 DetailViewer를 표시하려고합니다. 분명히, DetailViewer는 노드의 각 유형에 대해 다른 필드와 유효성 검사를 갖습니다.

이러한 요구 사항을 충족시키기 위해 데이터 소스를 설계하는 방법은 무엇입니까? 이기종 데이터에서 이와 같은 동적 DetailViewer를 만드는 가장 좋은 방법은 무엇입니까?

웹상의 모든 예제는 동 질적 인 데이터를 보여줍니다 (트리의 모든 개체에 대해 동일한 필드).

답변

0

이 경우 외부 ID와 외부 유형이라는 두 개의 추가 필드가있는 데이터 소스를 만듭니다. 기본 키를 외부 ID로 사용하고 데이터 소스 이름을 유형으로 사용한다고 가정 해 봅시다.

트리 노드를 선택하면 상세 뷰어에 ID와 유형을 전달합니다. getDataSource (type) 및 fetch ({criteria id = ID})를 호출 한 다음 세부 정보를 렌더링합니다. (물론 그것은 psuedo 코드입니다)