替换dojo / dijit TabContainer中特定选项卡的内容?

时间:2012-12-18 19:34:59

标签: javascript dojo

我需要更改其中一个选项卡的类 - 该面板将从子类ContentPane窗口小部件更改为子类BorderLayout窗口小部件。

至少我可以从TabContainer删除孩子,然后在该被破坏的标签的位置插入一个具有相同标签标题的新孩子。但是否有一个合法的快捷方式,只需替换支持控件而不会使选项卡失效?

(Dojo 1.8 - 小部件的程序化实例化)

1 个答案:

答案 0 :(得分:0)

不是通过dijit/layout/ContentPane添加标签,而是将其添加为dijit/layout/StackPane。然后使用StackPane的方法addChild(widget)removeChild(widget)和/或selectChild(widget)

var tab1 = registry.byId("tab1"); // dijit/layout/StackContainer

var bc = new BorderContainer();
var cp1 = new ContentPane({
    content: "content pane 1",
    region: "top"        
});
var cp2 = new ContentPane({
    content: "content pane 2",
    region: "center"
});
bc.addChild(cp1);
bc.addChild(cp2);

tab1.addChild(bc);
tab1.selectChild(bc); 

查看实际操作:http://jsfiddle.net/phusick/szCb4/