foreach(TreeNode node in treeView1.Nodes)
{
    //判断node的checked属性,若为true,得到Node.ID和Node.Text}

解决方案 »

  1.   

    我这样使用他!
    有xml文件控制!
    每次修改数据库!修改xml ,然后由xml生成树!
    <iewc:TreeView id="treeCategory" runat="server" TreeNodeSrc="includes/categoryTree.xml" Target="main2"></iewc:TreeView>后台
    //改变数据库时就修改xml文件!
    public void WriteXML()
    {
    XmlDocument  doc = new XmlDocument();
    String xmlStr   = CreateXml();
    doc.LoadXml(xmlStr);
    doc.Save(System.Web.HttpContext.Current.Server.MapPath("/newengnieer/includes/categoryTree.xml")  ) ; 
    }
    public string CreateXml( ) 
    {
    //读取数据库中的目录信息
    String vbcrlf= "\r\n";
    String     TreeXml   = "<?xml version=\"1.0\" encoding=\"gb2312\" ?>" +  vbcrlf + "<TREENODES>" + vbcrlf;
    DataView dv   = getD1Categories()  ; String  dvStr  = ""; for (int i=0;i<=dv.Count - 1;i++)
    {
    dvStr=dv[i]["productName"].ToString();
    TreeXml += " <treenode Text=\"" + dvStr + "\" navigateUrl=\"subCategoryMana.aspx?categoryNum=" + dv[i]["productNum"] + "\" >" + vbcrlf;
    TreeXml += getSubTree(dv[i]["productNum"].ToString());
    TreeXml += "        </treenode>" + vbcrlf;
    }
    TreeXml += "</TREENODES>";
    return TreeXml;
    }
    public String getSubTree(String parentCategoryNum  )  
    {
    String vbCrLf= "\r\n";
    DataView dv;
    String TreeXml   = "";
    if (parentCategoryNum.Length ==2) 
    dv = getD2Categories(parentCategoryNum) ;
    else 
    {
    if (parentCategoryNum.Length==5)
    dv = getD3Categories(parentCategoryNum) ;
    else
    return TreeXml;
    } String dvstr   = ""; for (int i=0;i<=dv.Count - 1;i++)

    dvstr = Convert.ToString(dv[i]["productName"]).Trim();
    TreeXml += " <treenode Text=\"" + dvstr + "\" navigateUrl=\"subCategoryMana.aspx?categoryNum=" + dv[i]["productNum"] + "\" >" + vbCrLf;
    TreeXml += getSubTree(dv[i]["productNum"].ToString());
    TreeXml += "        </treenode>" + vbCrLf;
    }
    return TreeXml;
    }
      

  2.   

    http://www.microsoft.com/china/MSDN/library/archives/library/DNAspp/html/aspnet-usingtreeviewieWebcontrol.asp
      

  3.   

    <script  language="javascript" >
    function GetNode()
      {
     var choose;
     var indexid;
     indexid=TreeView1.clickedNodeIndex;
     if (TreeView1.getTreeNode(indexid).getAttribute('Checked'))
      { 
    choose=false;
       }
      else
      { 
     choose=true;
       }
     TreeView1.getTreeNode(indexid).setAttribute('Checked',choose);
     var NodeArray=new Array();
      NodeArray=TreeView1.getTreeNode(indexid).getChildren();
     for(i=0;i<NodeArray.length;i++)
    {
     var tempindex=indexid+"."+i;
     TreeView1.getTreeNode(indexid).setAttribute('Checked',choose);
    }      
      }
    //-->
    </script>
      

  4.   

    xiangzionest(祥子) :
    foreach(TreeNode node in treeView1.Nodes)
    {
        //判断node的checked属性,若为true,得到Node.ID和Node.Text}
    要如何才能遍历整个Treeview而得到所有TreeNode.checked得TreeNode.ID和
    TreeNode.Text?我试了下不行,才能吧root节点打印出来,
    是不是我加得方法不对还请老兄帮我看一下。
    谢谢!!!!
      

  5.   

    现在问题已经解决了,
    代码如下:
    private void Button1_Click(object sender, System.EventArgs e)
    {
    for(int i=0;i<this.TreeView1.Nodes.Count;i++)
    {
    if(this.TreeView1.Nodes[i].Checked==true)
    {
    this.Response.Write(this.TreeView1.Nodes[i].ID +"--"+this.TreeView1.Nodes[i].Text+"<br>");
    }
    output_treenode(this.TreeView1.Nodes[i]);
    }
    }void output_treenode(Microsoft.Web.UI.WebControls.TreeNode ptn)
    {
    for(int i=0;i<ptn.Nodes.Count;i++)
    {
    if(ptn.Nodes[i].Checked==true)
    {
    this.Response.Write(ptn.Nodes[i].ID +"--"+ptn.Nodes[i].Text+"<br>");
    }
    output_treenode(ptn.Nodes[i]);
    }
    }
      

  6.   

    您可以到Google上搜一下呀,这方面的资料还是多的..但一定要有耐心...楼主加油了!!!!!