代码如下
  function tvMain_GetNode(id)
   {
      
      var tree = document.getElementById(id);
      
      var node = tree.getTreeNode("0");
   }为什么到tree.getTreeNode("0")就报错为什么啊 请各位指点。

解决方案 »

  1.   

     Page.ClientScript.RegisterStartupScript(this.GetType(), "myscript", "tvMain_GetNode('" + tvMain.ClientID + "');", true);
    这个是注册script
      

  2.   

    tree这个对象没有getTreeNode这个方法,你先确定下你获得的是个什么对象
      

  3.   

    javascript里有getTreeNode这个方法么?= =?
      

  4.   

    body>
        <form id="form1" runat="server">
            <div>
                <asp:TreeView ID="tvMain" runat="server">
                </asp:TreeView>
                &nbsp;
            </div>
        </form>
    </body>var tree = document.getElementById(id); 
    就是获得treeview这个对象啊,不对么
      

  5.   

    我汗...是这个对象没错,但是你用javascript找到他的时候他就不是服务器端控件对象了,就成了HTML控件对象了,就比如你的textbox到客户端就成了<input>了,getTreeNode这个方法你写在哪里?
      

  6.   

    我写在javascript里面了
     
       function tvMain_GetNode(id)
       {
          
          var tree = document.getElementById(id);
          
          var node = tree.getTreeNode("0");
       }在服务器load事件里注册的
      Page.ClientScript.RegisterStartupScript(this.GetType(), "myscript", "tvMain_GetNode('" + tvMain.ClientID + "');", true);
      

  7.   

    js并不认你的这个treeview的,也没有etTreeNode这个方法。关注
      

  8.   

    你这个方法没有错,注册也注册上了,现在的问题在于tree这个对象不支持getTreeNode这个方法...虽然我在MSDN里找到了这个方法,但是我也看到了红红的大字“Microsoft Internet Explorer WebControls are not currently supported.
      

  9.   

    我估计你是想找某一个节点……,既然你用了treeView呢,那就先运行页面,然后查看网页源文件,从HTML代码里找到你的treeview,看看是怎么一个形态,然后就可以用递归和getElementByTagName()去做了,getElementByTagName这个方法返回一个数组,参数里填标签的名字,你的TreeView到浏览器上肯定也是标签格式的,所以你就getElementByTagName()找到相应标签的对象数组,例如getElementByTagName("div"),然后在根据某些规则例如ID中部分字符串一样啊等等的条件找到你要找的节点就好了。说的可能有些晦涩
      

  10.   

    以前都不用回复就能看了,唉,CSDN的野心真大呀
      

  11.   

    我也碰到这样的问题,好像和treeview的版本有关iewebcontrol里的treeview是支持的,后面版本都被system.web.ui.controls替换了