原先链接:http://topic.csdn.net/u/20111019/11/df33c214-3498-44c7-8c75-a498d3b15cea.html问题状况: 树里面有两个同样的节点,如下:<TreeViewNode ID="Comp5a1" Text="aa" >
      <TreeViewNode ID="a" Text="a" NavigateUrl="a.aspx" />
     </TreeViewNode>
<TreeViewNode ID="Comp5a1" Text="bb" >
      <TreeViewNode ID="b" Text="a" NavigateUrl="a.aspx" />
     </TreeViewNode>
因为他们的NavigateUrl相同,当点击后一个节点时,树会默认把焦点设置到前一个去。问题怎么更改,让用户点击某个节点焦点就停留在当前节点。protected void TreeView1_NodeSelected(object sender, ComponentArt.Web.UI.TreeViewNodeEventArgs arg)
        {
            string nodeId = TreeView1.SelectedNode.ID;//这里可以获取点击节点的id
            ComponentArt.Web.UI.TreeViewNode tvMenuNode = TreeView1.FindNodeById(nodeId);
            tvMenuNode.Foucs();//这里设置焦点报空引用错误
        }
求大侠指点

解决方案 »

  1.   

    你两个 节点为什么ID 也要相同呢???通过JS 控制,别让页面 与服务器响应
      

  2.   

    ComponentArt.Web.UI.TreeViewNode tvMenuNode = TreeView1.FindNodeById(nodeId);
                tvMenuNode.Foucs();//这里设置焦点报空引用错误
    这里报空引用,那上面一行代码没找到结点么
    太复杂了,
      

  3.   


    ID不同 只是节点URL一样2 ComponentArt.Web.UI.TreeViewNode tvMenuNode = TreeView1.FindNodeById(nodeId);
    可以找到节点
      

  4.   

    虽然没有用ComponentArt,不过相信TreeViewNodeEventArgs arg应该有类型arg.Node的属性,你为啥要绕个大圈来得到node。
    如果取到的Node为空估计是你用的事件不太合适
      

  5.   

    哎,难道没熟悉的人?一定要让我用最笨的办法,再复制一个一样的页面 b.aspx?
    让节点的URL不一样来解决这个问题?