none
如何获取TreeView的节点的点击事件? RRS feed

  • 问题

  •  如何实现这样的功能:
    TreeView位于悬浮窗口上,当点击TreeView的节点时,关闭悬浮窗口,之后使一个DropDownList的SelectedValue=节点的Value值

    ???
    2009年2月11日 8:38

答案

  • 如果你的浮动窗口是iframe做的,可以提交到后台,可以在OnSelectedNodeChanged里返回到选择的value,如果是 div做的,则可以采用下面的技巧做法,注意:__doPostBack只能放后面

    <%@ Page Language="C#" %> 
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     
    <script runat="server"
     
      protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 
      { 
     
      } 
    </script> 
     
    <html xmlns="http://www.w3.org/1999/xhtml"
    <head runat="server"
      <title></title
    </head> 
    <body> 
      <form id="form1" runat="server"
      <asp:TreeView ID="TreeView1" runat="server" ShowLines="True" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged"
        <Nodes> 
          <asp:TreeNode Text="AAA" Value="aaa"
            <asp:TreeNode Text="A1" Value="aa1"
              <asp:TreeNode Text="AA1" Value="aaaa1"></asp:TreeNode> 
            </asp:TreeNode> 
            <asp:TreeNode Text="A2" Value="aa2"></asp:TreeNode> 
          </asp:TreeNode> 
        </Nodes> 
      </asp:TreeView> 
      <asp:DropDownList ID="d" runat="server"
        <asp:ListItem>aaa</asp:ListItem> 
        <asp:ListItem>aa1</asp:ListItem> 
        <asp:ListItem>aaaa1</asp:ListItem> 
        <asp:ListItem>aa2</asp:ListItem> 
      </asp:DropDownList> 
      </form> 
     
      <script type="text/javascript"
        function __doPostBack(eventTarget, eventArgument) { 
          if (eventArgument.indexOf("\\") > -1) { 
            ret = eventArgument.substr(eventArgument.lastIndexOf("\\") + 1) 
          } 
          else { 
            ret = eventArgument.substr(1); 
          } 
          setDL(ret) 
          document.getElementById("<%=TreeView1.ClientID %>").style.display = "none" 
        } 
     
        function setDL(str) { 
          s = document.getElementById("<%=d.ClientID %>") 
          for (i = 0; i < s.options.length; i++) { 
            if (s.options[i].value == str) s.options[i].selected = true
          } 
        } 
      </script> 
     
    </body> 
    </html> 
     


    孟宪会
    • 已标记为答案 cnlearner 2009年2月12日 11:37
    2009年2月11日 9:38
    版主