2013-02-26 8 views
0

팝업을위한 템플릿을 사용하고 있습니다. 템플릿 html 내에 3 개의 콘텐츠 창이 있습니다. 각 컨텐츠 창에는 위젯이 있습니다. 일부 로직을 기반으로 콘텐츠 창을 숨기거나 표시해야합니다. setValues 메서드에서 탭을 제거 할 수 있지만 작동하지 않는 destroy 메서드에서 다시 추가해야합니다. 즉 아무 일도 일어나지 않고 계속 제거됩니다. 어떻게 수행하나요? 가시성/스타일이 내용 창에서 작동하지 않습니다. 내 코드 :도장 템플릿 추가/제거 자식

setValues: 
var tabContainer = dijit.byId(this.id + "_tab"); 
      var tab2 = dijit.byId(this.id + "_SQLID2"); 
      var tab3 = dijit.byId(this.id + "_SQLID3"); 
      // Removing it: 
      tabContainer.removeChild(tab2); 
      tabContainer.removeChild(tab3) 

    destroy: 
    var tabContainer = dijit.byId(this.id + "_tab"); 
      var tab2 = dijit.byId(this.id + "_SQLID2"); 
      var tab3 = dijit.byId(this.id + "_SQLID3"); 
      tabContainer.addChild(tab3); 
      tabContainer.addChild(tab2) 

html: 
<div dojoType="dijit.layout.TabContainer" persist="true" style="width: 410px;left:6px; height:320px;" id="${id}_tab"> 
<!-- Tab 1--> 
          <label for="${id}_SQLID1"></label></td> 
      <div dojoType="ContentPane" for="${id}_SQLID1" id="${id}_SQLID1" name="${id}_SQLID1" value="11"class="xwtNotification" title="SQL 1"> 


<!-- Tab 2--> 
<div dojoType="ContentPane" for="${id}_SQLID2" id="${id}_SQLID2" name="${id}_SQLID2" class="xwtNotification" title="SQL 2"> 

<!-- Tab 3--> 
<div dojoType="ContentPane" for="${id}_SQLID3" id="${id}_SQLID3" name="${id}_SQLID3" class="xwtNotification" title="SQL 3"> 
+0

:

dijit.byId("myTabContainer").removeChild(dijit.byId("myContentPane")); 

은 다음과 고아의 ContentPane를 파괴 달하다. 당신의 위젯이 파괴되고 있다면, 왜 당신은 그것을 다시 탭에 추가하고 싶습니까? 나는 당신이 얻고있는 결과가 (보이는/제거되지 않는 것을 계속하는) 파괴되고있는 위젯에 대한 올바른 행동이라고 생각한다. 어쩌면 문제를 설명하기 위해 jsfiddle을 설정할 수도 있습니다. 그것은 우리가 가지고있는 문제를 진단하는 데 도움이 될 것입니다. – Default

+0

감사합니다. 일부 논리에 따라 탭을 표시하거나 숨길 필요가 있습니다. 그래서 한 번에 하나 이상의 탭을 보여야 할 수도 있습니다. 그러나 일단 내가 그것을 제거 언급, 당신은 그것을 다시 추가 할 수 없습니다. 가시성 문제는 탭 내의 컨텐츠 (또는 위젯)가 숨겨져 있으므로 (비어 있음) 탭 자체가 제거되지 않는다는 것입니다. 그래서 나는 빈 내용이있는 탭을 얻는다. 나는 탭을 숨길 필요가있다. – user1712512

답변

1

이것은 나에게도 잠깐 들려 줬습니다. 여기에 내가 알아 낸 내용은 다음과 같습니다 당신은 그것에서 탭 (의 ContentPane)를 제거 할 필요가

은있는 TabContainer 이고은의 contentPane를 파괴 - 그렇지 않으면 오류가 발생합니다 같은 ID를 가진 새의 ContentPane을 만들려고.

이 같은 dijit.removeChild()와 함께있는 TabContainer에서 탭을 제거 : 나는 완전히 당신이하려고하는 것을 이해하지

dijit.byId("myContentPane").destroy();