TableContainer在HTML中声明如下:
<div dojoType="dojox.layout.TableContainer" jsId="myTable" id="myTable" cols="1">
<!-- stuff -->
</div>
我尝试以编程方式添加包含TextBox的行:
var tb = new dijit.form.TextBox({
label: "Name"
});
myTable.addChild(tb);
TextBox将显示在表格下方,不显示任何标签。如何在表格中放置带标签的新行?
答案 0 :(得分:2)
我很确定这是一个错误。看起来,一旦TableContainer第一次启动,添加子项不会触发新的layout()
等。快速但可怕的解决方法是使TableContainer“忘记”它已经初始化并启动,并且然后手动运行startup()
。
var tb = new dijit.form.TextBox({
label: "Name"
});
myTable.addChild(tb);
myTable._initialized = false;
myTable._started = false;
myTable.startup();
我对这可能导致的任何不可预见的奇怪事情不承担任何责任:-)通常操纵私人成员(以下划线开头的那些)是一个坏主意。
答案 1 :(得分:1)
是的,tablecontainer存在一些问题,建议的解决方法是
<div id='myTable'></div>
在HTML中声明div但是在脚本中将其转换为tableContainer然后你可以使用两种方法来避免bug
在脚本中初始化表容器,如
var myTable=new dojox.layout.TableCOntainer({cols:1},"myTable");
don't forget to startup our table container after adding the childrens
在此之后,您可以轻松添加任意数量的孩子