2013-02-26 50 views
0

我正在使用popover模板。 我有我的模板html內的3個內容窗格。 每個內容窗格都有小部件。 我需要隱藏/顯示基於某些邏輯的內容窗格。 在setValues方法我能夠刪除標籤,但我需要將它們添加回銷燬方法,這是不工作,即沒有任何反應,他們繼續被刪除。 如何做到這一點?內容窗格上的可見性/樣式不起作用。 我的代碼:道場模板添加/刪除子

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

我不完全明白你正在嘗試完成。如果您的小部件被銷燬,爲什麼要將標籤重新添加到它中。我認爲你得到的結果(它們繼續不可見/被刪除)是被銷燬的小部件的正確行爲。也許你可以設置一個jsfiddle來演示你的問題。這將有助於我們診斷您遇到的問題。 – Default 2013-02-26 14:07:19

+0

謝謝。我需要根據一些邏輯來顯示/隱藏選項卡。因此,我可能需要顯示一個或多個選項卡。但是,正如你提到的一旦我刪除它,我無法將其添加回來。可見性的問題在於選項卡中的內容(或小部件)是隱藏的(所以我得到空白),但選項卡本身不會被刪除。所以我得到一個空白內容的標籤。我需要隱藏標籤。 – user1712512 2013-02-26 16:25:03

回答

1

這讓我有一段時間了。這是我想通了:

你需要從中取出標籤(contentPane的)是TabContainer的破壞的contentPane - 否則試圖創建具有相同ID的新的contentPane將拋出一個錯誤。

從TabContainer的與dijit.removeChild()這樣的刪除標籤:

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

然後銷燬與孤立的contentPane:

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