我的TreeView同时绑定了不同的Text和相同的Value,怎么得到的Text的值都是第一个节点的值
如:
给TreeView1绑定的:
Text值 Value值
bsc1 BSC
bsc2 BSC
bsc3 BSC
这样我在OnSelectedNodeChanged事件中通过:TreeView1.SelectedNode.Text;
不管是点bsc1还是bsc2还是bsc3得到的都是bsc1。
该怎么办呢?我怀疑就是绑定了相同的Value值了,但是这怎么也影响Text的值啊?
该怎么办呢?
[解决办法]
关于为什么相同的 Value 会导致如此非预期的结果?
TreeView 中 TreeNode 具有一个 ValuePath,保存当前节点到根目录的路径信息,此信息由 TreeNode.Value 加上分隔符(默认为 \ 反斜扛)
TreeView 使用 FindNode(string valuePath) 来定位目标节点,
那么你可以想象得到,【当处于同一级的节点】,【并且他们的 value 相同】,
则 ValuePath 页相同的
并且,FindNode 找到第一个满足的节点即返回,
客户端点击的时候,会传递被点击节点的 ValuePath 给服务器端,服务器根据此值确定选中的节点,
你通过鼠标放到节点上,IE 状态蓝显示的 js 函数( __doPostBack ) 的第二个参数,即表示此值
所以,你的总是 SelectedNode 总是 bsc1 那个节点
请改变你的 value
[解决办法]
其实也简单,value值分两部分:1 前几个字符是区分value的;2 后面就是真正的value内容