0

我有一个ascx control带有ASP.NET树视图的内部。我正在尝试ascx control使用以下方法从同一页面中的另一个获取值。

       var treeViewData = window["<%=TreeView1.ClientID%>" + "_Data"];
        if (treeViewData.selectedNodeID.value != "") {
            var selectedNode = document.getElementById(treeViewData.selectedNodeID.value);
            var value = selectedNode.href.substring(selectedNode.href.indexOf(",") + 3, selectedNode.href.length - 2);
            var text = selectedNode.innerHTML;
            alert("Text: " + text + "\r\n" + "Value: " + value);
        } else {
            alert("No node selected.")
        }

但它找不到 TreeView1,因为它是一个不同的 ascx 控件。任何想法如何实现它?

4

2 回答 2

0

在您的第一个用户控件中创建一个 JavaScript 变量并放入

var treeViewID = "<%=TreeView1.ClientID%>";

然后在你的第二个用户控件中使用这个 JavaScript 变量来获取元素(JS 变量是全局的)

var treeView = window[treeViewID + "_Data"] ;

注意:为此,您的第一个控件应在第二个控件之前呈现。

于 2012-07-18T07:58:26.673 回答
0

您可以在 ascx 页面中添加一个全局 js 变量,该变量将由 ascx 在选择节点后使用树视图设置,并在另一个 ascx 中获取此值。他们的 js 代码一起运行,但不是他们的 aspx 和 cs 代码。

于 2012-07-18T08:00:15.973 回答