dojo模板添加/删除子项

时间:2013-02-26 03:22:10

标签: dojo

我正在使用popover模板。 我的模板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">

1 个答案:

答案 0 :(得分:1)

这让我也有一段时间了。这是我想出来的:

你需要从它的tabContainer AND 中删除标签(ContentPane)来销毁ContentPane - 否则尝试创建具有相同ID的新ContentPane将会引发错误。

使用dijit.removeChild()从tabContainer中删除选项卡,如下所示:

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

然后使用以下命令销毁孤立的ContentPane:

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