你的TREEVIEW是用JS写的还是一个WEB控件呢?如果是JS,那么还是用JS就可以搞定了。如果是WEB控件的话,那么WEB控件应该提供了相应的触发事件,可以解决你的问题。

解决方案 »

  1.   

    Treeview用的是Microsoft web control,但对展开和收缩节点的操作我想在客户端实现
      

  2.   

    http://expert.csdn.net/Expert/topic/1382/1382892.xml
    看看这个吧,对你可能有点帮助
      

  3.   

    没有问题!
    在Page_Load 中调用!
    1。InitTree("TV","ondblclick","initTree"); //-=调用树的事件
    TV 是TreeView的名字
    ondblclick //只有双击才回送事件
    iniTree是在**.aspx中Body Onload = "initTree()" 中写的名字
    2。在**.aspx中的Body 中添加Onload = "initTree()" 
    3。将下列函数放在**.aspx.cs中
    //-====初始化客户端的事件
    private void InitTree(string treename,string eventstr,string functionname)
    {
    string FunctionName = functionname;//你定义送回的事件
    string TreeName = treename;  System.Web.UI.Control ControlName = Page.FindControl(TreeName);  //要初始化的树
    string Event = eventstr;
    string StrRef = Page.GetPostBackEventReference(ControlName);
    string ScriptStr = "<script language=\"JavaScript\"> \n" +
    "<!-------- \n" +
    "function " + FunctionName +"() { \n" +
    TreeName +"."+ Event +" = function() { \n" +
    "if (event.oldTreeNodeIndex != event.newTreeNodeIndex) \n" +
    "this.queueEvent('"+ Event +"', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex); \n" +
    "window.setTimeout('" + StrRef.Replace("'","\\'")  + "', 0, 'JavaScript'); \n" + 
    "    } \n" +     
    " } \n" +  
    "// --> \n" +
    "</script>";
    Page.RegisterClientScriptBlock(FunctionName,ScriptStr );
    }
      

  4.   


    to:Power_X3q(人海沉浮) 客户端可以写c#代码吗?
      

  5.   

    当然不是啊!
    看一下InitTree(string treename,string eventstr,string functionname)
    函数就知道是生成客户端的代码啊!
      

  6.   

    <script language=javascript>
    TreeView1.getTreeNode("0").setAttribute("Expanded",true);//第一个节点展开
    //这里做循环,将后面的节点收拢
            {
             TreeView1.getTreeNode("i").setAttribute("Expanded",false);
             }
    </script>
    刚学的,试试看