2012-07-18 28 views
0

我有一個ascx control與一個ASP.NET treeview裏面。我試圖從同一頁面中的另一個ascx control中獲取值,並使用以下方法。Asp .net treeview,從javascript值採取值

 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控件。任何想法如何實現它?

回答

0

在你第一個用戶控件創建一個JavaScript變量,並把

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

然後在你第二個用戶控制使用該JavaScript變量獲取該元素(JS變量是全局性的)

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

注:爲了這個工作,你的第一個控件應該在第二個控件之前呈現。

0

您可以在aspx頁面中添加一個全局js變量,該變量將在選定節點後由ascx和樹視圖設置,並在另一個ascx中獲取該值。他們的js代碼一起運行,但不是他們的aspx和cs代碼。