本帖最后由 cookie_fei 于 2013-08-23 14:39:27 编辑

解决方案 »

  1.   

    你代码里好像重建了treeview? 原来的选择自然没有了。
    为什么要重建呢?应该不必要的。
      

  2.   

    同一级别的节点的value不能一样,改成:
    For i As Integer = 0 To 2
        Dim rootnode As New TreeNode
        rootnode.Text = "rootN" & i.ToString
        rootnode.Value = i
        rootnode.SelectAction = TreeNodeSelectAction.Selectweb的treeview中都没有SelectedNodeIndex这个属性
      

  3.   

    上面那个代码 我是放在pageload 里面的,只加载一次。
      

  4.   

     
    恩是没有SelectedNodeIndex 这个属性,主要是我把.net2003的代码升级到2008里面,以前的value值是一样的,是从数据库中读出来的。如果变为 不一样的话,是可以的,但是代码改动量很大,读写等部分很多 有没有方法 在保持这个value相同的情况下也可以定位到我到底是选中哪个节点的啊??
      

  5.   

    点击之后存到session里或是hiddenfield里
      

  6.   

    在.asp页面加上
    <script language="javascript" type="text/javascript"> 
        function showNodes(Level,nodeId,rootNode)
        {
            $("Level").value=Level;
            $("nodeId").value=nodeId;
            $("selTree").click(); 
        }
      
        var oldSelectID = "";
        var newSelectID = "";
         
        function OnTreeNodeChecked() 
        { 
            if(oldSelectID != "")
            {
                document.getElementById(oldSelectID).style.color = "";
                document.getElementById(oldSelectID).style.fontWeight = "normal";
            }
            var element = window.event.srcElement; 
            $("nodeValue").value=element.innerHTML;
            element.style.color = "#ff0000"; 
            element.style.fontWeight="bold"; 
            oldSelectID = element.id;
        } 
        </script>    <div  style="display:none;">
            nodeId:<asp:TextBox ID="nodeId" runat="server"></asp:TextBox>
            nodeValue:<asp:TextBox ID="nodeValue" runat="server"></asp:TextBox>
        </div>
      

  7.   

    if(!IsPostBack)
    {
    binding代码}
      

  8.   

    你想办法写一个sql,统一对数据库做一次update,把相同的value改成不同值。