【问题标题】:DOM Elements disappear when put into a Telerik RadWindowDOM 元素在放入 Telerik RadWindow 时消失
【发布时间】:2015-12-13 00:33:59
【问题描述】:

我有一个自定义的 javascript 树,我需要使用 Telerik Rad 在网页中显示它。我的树植根于一个名为fptree 的元素。我可以在对话框中弹出树,如下所示:

var rwm = parent.GetRadWindowManager();
var w = rwm.open(null, null, document.getElementById('fptree'), 400, 500);

这会根据需要在模式对话框窗口中显示我的树。但是,我无法再找到树中的任何条目,包括$("#fptree")。树通过按 id 查找节点来扩展节点,但回调失败,因为找不到节点或父节点。节点在对话框中正确显示,因此它们必须在某处可用。

我尝试使用来自lemoda.netdump_dom,并且fptree 元素没有出现在转储中。 (如果我在打开 RadWindow 对话框之前转储 DOM,它们会显示出来。)

谁能解释我如何访问 RadWindow 对话框中的 DOM 元素? (这一切都在 jquery-ui 对话框中工作,但我需要与基于 Telerik 的页面集成以获得一致的样式。)

【问题讨论】:

    标签: javascript dom tree dialog telerik


    【解决方案1】:

    RadWindow 移动 DOM 中的内容 - 它生成的弹出窗口(它通过 JS 完成)是 <form> 元素的第一个子元素。也许这与某些代码无法找到它们有关。

    我发现的另一件事是:http://feedback.telerik.com/Project/108/Feedback/Details/129174-fix-a-radwindow-created-client-side-does-not-generate-its-contenttemplate-when-se 这表明动态生成的内容模板无法按预期工作。所以你应该尝试在标记中声明一个带有 ContentTemplate 的 RadWindow 并打开它。比如:

            <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多