js: WebForm1.AddAjaxTree(); cs:
[Ajax.AjaxMethod()]
public void AddAjaxTree()
{
AddTree(0, (TreeNode)null);
}
[Ajax.AjaxMethod()]
public void AddTree(int ParentID,TreeNode pNode) 
{
dataconn dc=new dataconn();
String sql="select * from Department";
DataSet ds=dc.DSC(sql); DataView dvTree = new DataView(ds.Tables[0]);
dvTree.RowFilter =  "[PARENTID] = " + ParentID; foreach(DataRowView Row in dvTree) 
{
TreeNode Node=new TreeNode() ;
if(pNode == null) 
{    
Node.Text = Row["Name"].ToString();
Node.ID= Row["ID"].ToString();
TreeView1.Nodes.Add(Node);
Node.Expanded=true;
AddTree(Int32.Parse(Row["ID"].ToString()), Node);

else 
{   
Node.Text = Row["Name"].ToString();
Node.ID= Row["ID"].ToString();
pNode.Nodes.Add(Node);
Node.Expanded = true;
AddTree(Int32.Parse(Row["ID"].ToString()),Node);    
}
}                   
}            
现在的问题是当程序走到TreeView1.Nodes.Add(Node);的时候
页面就显示了,没有任何错误,也没显示树
是不是不可以这样动态生成树,必须在javascript里生成啊?

解决方案 »

  1.   

    Ajax的方法中,不能使用页面中的控件.
      

  2.   

    将Dataset返回前台
    然后再负值
      

  3.   

    是啊,DataSet返回前太台后,如何用javascript添加结点啊?
    我试了好久,没弄出来
    表结构是这样地
    ID    ParentID    Name谁有这段代码啊?或指点下如何生成啊?
      

  4.   

    是啊,DataSet返回前太台后,如何用javascript添加结点啊?
    我试了好久,没弄出来
    表结构是这样地
    ID    ParentID    Name谁有这段代码啊?或指点下如何生成啊?
      

  5.   

    楼主,首先你后台注册的ajax方法怎么没有返回值,这里应该返回dataset把,然后在前台写javascript方法接收dataset值,当然你要在前台动态生成树那么用treeview控件是不行的,只有用javascript方法自己写树,这样最好,比较灵活.给你个链接去看看,博主用的treeview,应该对你有帮助
    http://www.cnblogs.com/dingsea/archive/2006/12/06/262220.html
      

  6.   

    谢谢楼上,应该对我很有帮助
    我现在就是用的ajax 返回给前台一个DataSet
    可以把用javascript把DataSet添加到Treeview很费力!:(
      

  7.   

    谢谢楼上,应该对我很有帮助
    我现在就是用的ajax 返回给前台一个DataSet
    可以把用javascript把DataSet添加到Treeview很费力!:(