如:
给TreeView1绑定的:
Text值  Value值
bsc1     BSC
bsc2     BSC
bsc3     BSC
这样我在OnSelectedNodeChanged事件中通过:TreeView1.SelectedNode.Text;
不管是点bsc1还是bsc2还是bsc3得到的都是bsc1。
该怎么办呢?我怀疑就是绑定了相同的Value值了,但是这怎么也影响Text的值啊?
该怎么办呢?

解决方案 »

  1.   

    贴你代码。
    下面是正确的写法<%@ Page Language="C#" EnableViewState="true" %><!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)
        {
            Response.Write(TreeView1.SelectedNode.Text);
        }
    </script><html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="http://blog.csdn.net/net_lover/Rss.aspx">
        </asp:XmlDataSource>
        <asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1" ShowLines="True"
            OnSelectedNodeChanged="TreeView1_SelectedNodeChanged">
        </asp:TreeView>
        </form>
    </body>
    </html>
      

  2.   

    我怀疑就是绑定了相同的Value值了,但是这怎么也影响Text的值啊?========恭喜你答对了!事实上,假如你稍微改变下几个 NodeValue 的值,就可以验证你猜想 ...
      

  3.   

    关于为什么相同的 Value 会导致如此非预期的结果?TreeView 中 TreeNode 具有一个 ValuePath,保存当前节点到根目录的路径信息,此信息由 TreeNode.Value 加上分隔符(默认为 \ 反斜扛)TreeView 使用 FindNode(string valuePath) 来定位目标节点,那么你可以想象得到,【当处于同一级的节点】,【并且他们的 value 相同】,
    则 ValuePath 页相同的并且,FindNode 找到第一个满足的节点即返回,客户端点击的时候,会传递被点击节点的 ValuePath 给服务器端,服务器根据此值确定选中的节点,你通过鼠标放到节点上,IE 状态蓝显示的 js 函数( __doPostBack ) 的第二个参数,即表示此值所以,你的总是 SelectedNode 总是 bsc1 那个节点请改变你的 value
      

  4.   

    另外需要注意的是,即使你没有显示的设置 TreeNode.Value ,则访问 Value 会返回 Text 的值,所以,你案例中,假如假如没有设置 Value 反而可以得到预期的效果
      

  5.   

    I am LZ:如果我就想Value值相同,Text值不同该怎么办法?
      

  6.   

    其实也简单,value值分两部分:1 前几个字符是区分value的;2 后面就是真正的value内容
      

  7.   

    获取value值是在判断一下就可以了
      

  8.   

    to Jinglecat:
    认识的够深刻
      

  9.   

    确实有这个问题,value相同的时候treeview的selectedchange 还触发,
    换成dropdownlist的话,selectedchange 根本就不出发了。我遇到这种情况一般都是把text 和value 绑到一起,然后在判断处理
      

  10.   

    "不管是点bsc1还是bsc2还是bsc3得到的都是bsc1。"证明你的楼在绑定的时候3个节点的Text都被赋成“bsc1”,并没有按你的意图赋值,楼主你跟踪一下你的树的绑定节点的函数。
      

  11.   

    if(!IsPostBack)
    {
    绑定treeView1;
    }
      

  12.   

    正好我的树绑定是放在FOR循环中做的,就在每个VLUE后加个循环的次数,
    要用到的时候SubString一下。