这两天,在使用dorado做开发时,结合了一些javascript的使用.
一、javascript中的appendChild,给一个元素添加其子元素。
oElement = object . appendChild ( oNode )
参数:
oNode : 必选项。对象(Element)。要被添加的对象。
返回值:
oElement : 对象(Element)。返回被添加对象的引用。
说明:
将 oNode 添加为 object 的最后一个子对象。即 object 的 childNodes 集合的最后一项。
oNode 被添加前,必须先被建立。
要使被添加的 oNode 可视,它必须在文档结构中位于 body 对象以内。
如果 oNode 是已经在文档结构中存在定位的对象,该对象将被移动到你指定的插入位置,而不会有新对象被创建。
在运行时使用此方法是可以的。在对象的关闭标签被解析之前移除对象,则文档空间可能未被呈递。
示例:
var oNewNode=document.createElement("div");
document.body.appendChild(oNewNode);
我的程序中的使用方式:将层加为其子结点,然后设置层可见
//document.getElementById("__control_10009").childNodes[0].appendChild(tree2);
//document.getElementById("div1").style.display='block';
二、在dorado中,得到树的层,要一层一层的,唉,这种知识点应该有的吧?
tree2.getTreeLevel("dydj").getTreeLevel("bdz").getTreeLevel("dy")
三、在dorado中,如果绑定树的dataset需要重新加载(因为其dataset在其它页面已经更新),如果用简单的flushData完成这项工作的话,树就没有了,因为dorado 不会帮助我们重新构造树的。需要加以下的代码:
function alterDy(){
sb_ds_dy.setShowLoadingTip(true);
tree2.getCurrentNode().setExpanded(true);
sb_ds_dy.parameters().setValue("bdzbm", sb_ds_bdz.getValue("bdzbm"));
sb_ds_dy.flushDataAsync(
function() {
sb_ds_dy.disableControls();
try {
sb_ds_dy.moveFirst();
while (!sb_ds_dy.isLast()) {
var node = new RecordTreeNode(sb_ds_dy.getCurrent(), tree2.getTreeLevel("dydj").getTreeLevel("bdz").getTreeLevel("dy"));
tree2.getCurrentNode().addNode(node);
sb_ds_dy.moveNext();
}
}
finally {
sb_ds_dy.enableControls();
}
}
);}
四、在dorado中通过绑定一个menu 生成一个outLookBar,menu是根据数据库的内容动态生成,那么如果想把一个树添加到outLookBar 的一个outLookBarGroup中,该如何做?怎么准确定位到这个outLookBarGroup?解决办法:
<d:OutlookBar id="outlookbar1" >
<d:OutlookBarGroup name="0005" label="变电设备信息">
<d:Tree id="tree2"></d:Tree>
</d:OutlookBarGroup>
</d:OutlookBar>
在JSP中这样写以后,dorado在解析时会找到menu中的menuItem名为0005的那项,取而代之!晕死!不知道的时候想了好多办法解决这个问题。