Javascript DOM元素在放入Telerik窗口时消失
我有一个自定义javascript树,需要使用Telerik Rad在网页中显示。我的树的根位于名为Javascript DOM元素在放入Telerik窗口时消失,javascript,dom,tree,dialog,telerik,Javascript,Dom,Tree,Dialog,Telerik,我有一个自定义javascript树,需要使用Telerik Rad在网页中显示。我的树的根位于名为fptree的元素。我可以在对话框中弹出树,如下所示: var rwm = parent.GetRadWindowManager(); var w = rwm.open(null, null, document.getElementById('fptree'), 400, 500); 这将根据需要在模式对话框窗口中显示我的树。但是,我再也找不到树中的任何条目,包括$(“#fptree”)。树通过
fptree
的元素。我可以在对话框中弹出树,如下所示:
var rwm = parent.GetRadWindowManager();
var w = rwm.open(null, null, document.getElementById('fptree'), 400, 500);
这将根据需要在模式对话框窗口中显示我的树。但是,我再也找不到树中的任何条目,包括$(“#fptree”)
。树通过按id查找节点来扩展节点,但回调失败,因为找不到任何节点或父节点。节点在对话框中正确显示,因此它们必须在某个位置可用
我曾尝试从中使用dump\u dom
,但fptree元素没有显示在转储中。(如果我在打开RadWindow对话框之前转储DOM,它们确实会显示。)
有人能解释一下我如何访问RadWindow对话框中的DOM元素吗?(所有这些都在jquery ui对话框中工作,但我需要与基于Telerik的页面集成以获得一致的样式。)RadWindow移动DOM中的内容-它生成的弹出窗口(通过JS)是
元素的第一个子元素。也许这与某些代码无法找到它们有关
我发现的另一件事是:
表示动态生成的内容模板无法按预期工作。因此,您应该尝试在标记中声明一个RadWindow及其ContentTemplate并打开它。比如:
<telerik:RadWindow ID="RadWindow1" runat="server">
<ContentTemplate>
</ContentTemplate>
</telerik:RadWindow>
<div id="myTree">this is my tree</div>
<asp:Button ID="Button1" Text="open dialog and put nodes in it" OnClientClick="openWnd(); return false;" runat="server" />
<script>
function openWnd() {
var wnd = $find("<%=RadWindow1.ClientID%>");
wnd.show();
var templateElem = wnd.get_contentElement();
//this happens after show()
templateElem.appendChild(document.getElementById("myTree"));
}
</script>
这是我的树
函数openWnd(){
var wnd=$find(“”);
wnd.show();
var templateElem=wnd.get_contentElement();
//这发生在show()之后
templateElem.appendChild(document.getElementById(“myTree”);
}