2012-09-12 3 views
1

그래픽 컨테이너를 사용하여 사용자 정의 위젯을 추가 및 제거하여 이러한 작업이 수행 될 때 자동으로 적용되는 정렬 기능을 설정할 수 있습니다.하위 위젯을 자동으로 정렬하는 Dojo 목록 컨테이너가 있습니까?

Dojo에 이미 적합한 오브젝트가 있습니까? 아니면 문제에 대해 올바르게 생각하지 않아도 될까요?

최소 맞춤 작업 위젯에 대한 예제가 있습니까?

답변

1

표준 구성 요소의 정렬 기능은 컨테이너에 모든 위젯 유형이 포함될 수있는 경우 매개 변수와 함께 순서를 가중해야하는 방식으로 실제로는 존재하지 않는다고 생각하지 않습니까?

레이아웃 위젯 확장을 사용하는 것이 가장 좋은 옵션입니다. 그들은 각각이 프로토 타입 다음, 아이를 추가하는 기능을 가지고 :

addChild(/*Object*/ dijit, /*Integer?*/ insertIndex) 

dijit.layout.StackContainer 좋은 출발점이 될 것입니다, 그것은 dijit._Container (및 dijit.layout._LayoutWidget)에서 상속됩니다. 따라서 재정의의 확장 기능을 호출 할 시점을 선택합니다.

dojo.declare("my.Container", [dijit._Container], { 
    getSortOrder : function(newDijit) { 
     var newIndex = -1; ?? 
     // something to work with 
     var currentChildren = this.getChildren(); 
     var currentDescendants = this.getDescendants(); 
     return newIndex; 
    }, 
    addChild: function(dijit, index) { 
      // figure out index 
      arguments[1] = this.getSortOrder(dijit); 
      this.inherited(arguments); 
    } 
}); 

그러나 layoutwidgets에는 bordercontainer의 region 매개 변수와 같이 위치를 지정하는 것이 더 많습니다.

1

SitePen의 dgrid을 사용하고 Editor 유형의 열이있는 목록 위젯을 정의하십시오. 사용자 정의 위젯을 편집기의 매개 변수로 보냅니다. dgrid의 List 위젯은 데이터를 기반으로 그리드 인 것처럼 정렬 할 수 있어야하며 Editor 열은 List 항목의 콘텐츠의 일부로 원하는 것을 표시 할 수 있어야합니다.

필요한 것이 있으면 주변에 있습니다. 행운,

관련 문제