怎么把泛型集合转换成xml

解决方案 »

  1.   

    树控件无法以泛型集合做数据源,所以我希望把它转成xml..
      

  2.   

    树形控件的数据源(DataSource)需要实现IHierarchicalEnumerable接口。详情:
    http://www.cnblogs.com/sxlfybb/articles/1043946.html
    不要走xml这条路,我刚好遇到这个问题。如果要求不高可以直接递归创建树。当然,你要转化成xml也是递归创建。
    以下代码源自《精通asp.net 2.0网络应用系统开发》
    public void BindListView(TreeView treeView)
    {
    WebFileManage.File file = new File();
    DataTable dataTable = SystemTools.ConvertDataReaderToDataTable(file.GetFiles());
    treeView.Nodes.Clear();       ///清空树的所有节点 ///创建根节点
    TreeNode rootNode = new TreeNode();
    ///设置根节点属性
    rootNode.Text = ASPNET2System.PROJECTDESN;
    rootNode.Value = ASPNET2System.PROJECTTREEROOTNODEDATA; ///设置根节点的Key值
    rootNode.Expanded = true;
    rootNode.ImageUrl = "Images/folder.gif";
    rootNode.Selected = true; ///添加根节点
    treeView.Nodes.Add(rootNode); ///创建其他节点
    CreateChildNode(rootNode, dataTable);
    } private void CreateChildNode(TreeNode parentNode, DataTable dataTable)
    {
    DataRow[] rowList = dataTable.Select("ParentID='" + parentNode.Value + "'");
    foreach (DataRow row in rowList)
    {   ///创建新节点
    TreeNode node = new TreeNode();
    ///设置节点的属性
    node.Text = row["Desn"].ToString();
    node.Value = row["FileID"].ToString();
    if (row["IsDir"].ToString() == "1")
    {
    node.Expanded = true;
    node.Target = "_self";
    node.ImageUrl = "Images/folder.gif";
    }
    else
    {
    node.Target = "_blank";
    }
    //node.NavigateUrl = row["Url"].ToString();
    parentNode.ChildNodes.Add(node);
    ///递归调用,创建其他节点
    CreateChildNode(node, dataTable);
    }
    }