don't know if this will help you:http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=x38nr%23kPCHA.1876%40cpmsftngxa07&prev=/groups%3Fq%3DSelectedIndexChange%2Btreeview%2Bautopostback%253Dfalse%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26selm%3Dx38nr%2523kPCHA.1876%2540cpmsftngxa07%26rnum%3D1

解决方案 »

  1.   

    如果 你要这个效果 就不要用tree这个控件 找一个脚本写的吧
      

  2.   

    这个你要利用 treenode的Target和 NavigateUrl 属性就可以,autopostback设置为false,树不刷新for(int i=0;i<dtCorp.Rows.Count;i++)
    {
    /*将公司加在树的第一层*/
    TreeNode trnCorp    = new TreeNode();
    trnCorp.Text        = dtCorp.Rows[i]["Name"].ToString();
    trnCorp.Target      = "frmRgt";
    trnCorp.ImageUrl = "../../Img/key.gif";
    trnCorp.NavigateUrl = "./Comu/Default.aspx?id="+dtCorp.Rows[i]["ID"].ToString();
    trnCorp.Expanded = true;
    trvAptm.Nodes.Add(trnCorp);
    注解:trvAptm为树实例
      

  3.   

    大家看看下面的代码,好像就是实现这种功能的,以前用过没成功的,这次saucer(思归)给的例子也是它,saucer(思归)给的是C#的,下面的是江雨中有人译成VB版的,但语法没问题的,不知还要修改什么才能成功?我树的名子也为TreeView1,下面涉及到的InitTree()函数是我自己的,我也贴了出来,大家看看下面的代码还应该修改什么?Private  Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)   Dim strTreeName As String = "TreeView1"
            Dim strRef As String = Page.GetPostBackEventReference(TreeView1)        Dim strScript As String = "<script language='JavaScript'> " & vbCrLf _
            & "<!-- " & vbCrLf _
            & " function initTree() { " & vbCrLf _
            & " " & strTreeName & ".onSelectedIndexChange = function() { " & vbCrLf _
            & " if (event.oldTreeNodeIndex != event.newTreeNodeIndex) " & vbCrLf _
            & " this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex); " & vbCrLf _
            & " window.setTimeout('" & strRef.Replace("'", "\'") & "', 0, 'JavaScript'); " & vbCrLf _
            & " } " & vbCrLf _
            & " } " & vbCrLf _
            & "// --> " & vbCrLf _
            & "</script>"
            Page.RegisterClientScriptBlock("InitTree", strScript)end sub
    intiTree():(我自己的)
        Private Sub intiTree(ByRef Nds As TreeNodeCollection, ByVal parentId As String)
            Dim dv As New DataView()
            Dim drv As DataRowView
            Dim tmpNd As TreeNode
            Dim strId As String
            dv.Table = ds.Tables("tree")
            dv.RowFilter = "PARENTID='" & parentId & "'"
            For Each drv In dv
                tmpNd = New TreeNode()
                strId = drv("NODEID")
                tmpNd.ID = strId
                tmpNd.Text = drv("NODENAME").ToString
                ' tmpNd.ImageUrl = drv("ICON").ToString
                Nds.Add(tmpNd)
                parentId = strId
                intiTree(Nds(Nds.Count - 1).Nodes, parentId)
            Next
            cn.Close()
        End Sub
      

  4.   

    如果我中在程序中又需要autopostback为真的又怎么办,比如添加节点等操作,如何动态来设置autopostback,由自己来控制呢?
      

  5.   

    第一、需要的时候,treeview1.autopostback
    第二、你的代码没有问题,关键是没有调用函数的。
    在body里添加  <body  onload="initTree()"> 调用。
      

  6.   

    我也遇到了这个问题,下面是我的解决方法function tree_onclick() {  //or document_occlick()
    var treeview,current_node,node_ID,node_DATA,node_TXT;
    treeview=document.getElementById('TreeView1');
    current_node=treeview.getTreeNode(treeview.clickedNodeIndex);
    node_ID=current_node.getAttribute('ID');
    node_DATA=current_node.getAttribute('NodeData');
    node_TXT=current_node.getAttribute('outerText');
    var loc=txt.indexOf(' ');
    node_TXT=node_TXT.substring(0,loc);}