在asp.net中为treeview的已检查值编写xml文件

时间:2012-11-12 04:36:48

标签: asp.net xml treeview

<form id="form1" runat="server">
<div>
    <asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" ShowLines="true" ShowExpandCollapse="true">

<Nodes>
<asp:TreeNode Value="Child1" Expanded="True" Text="Server1">
  <asp:TreeNode Value="Grandchild1" Text="MBS1" />
  <asp:TreeNode Value="Grandchild2" Text="MBS2" />
</asp:TreeNode>
<asp:TreeNode Value="Child2" Text="Server2" />
<asp:TreeNode Value="Child3" Expanded="True" Text="MBS3">
  <asp:TreeNode Value="Grandchild1" Text="MBS4" />
</asp:TreeNode>
 </Nodes>
</asp:TreeView>
</div>
<p>
    <asp:Button ID="btnCreateXML" runat="server" onclick="btnCreateXML_Click" 
        Text="Create XML" />
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</p>
</form>

代码背后:

using System.Xml;

 public partial class _Default : System.Web.UI.Page 
{
protected void Page_Load(object sender, EventArgs e)
{
    TreeView1.Attributes.Add("onclick", "javascript: OnTreeClick();");
}
protected void btnCreateXML_Click(object sender, EventArgs e)
{
    XmlDocument doc = new XmlDocument();
    doc.Load(path);
    XmlNode Parent = doc.CreateElement("Parent");
    XmlNode Child = doc.CreateElement("Child");
    doc.Save(path);
    string temp;
    char[] al = new char[5];
    foreach (TreeNode node in TreeView1.CheckedNodes)
    {
        //temp = (node.Text).ToString();
        Child.InnerText = node.Text;
        Parent.AppendChild(Child);

        Response.Write(node.Text);
       // al[node] += al[node];

    }        
 }
}

我有asp.net TreeView控件,当我检查节点时,我可以从btnCreateXML的click事件后面的代码中获取那些选中的值。 我将进入node.Text的值,我想为它创建XML文件。如何实现这一点(仅适用于所选节点)? 任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

aspx文件:

<asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" ShowLines="True" ExpandDepth="1">
     <Nodes>
     <asp:TreeNode Text="Entire">
          <asp:TreeNode Text="VM">
            <asp:TreeNode Text="MBS1">   
        </asp:TreeNode>
        <asp:TreeNode Text="PF1"></asp:TreeNode>
        </asp:TreeNode>


        <asp:TreeNode Text="VM2">
        <asp:TreeNode Text="MBS2"></asp:TreeNode>
        <asp:TreeNode Text="PF2"></asp:TreeNode>
        </asp:TreeNode>

    </asp:TreeNode>
    </Nodes>
    </asp:TreeView>

代码背后:

protected void btnCreateXML_Click(object sender,EventArgs e)     {         //开始写作         XmlTextWriter writer = new XmlTextWriter(Server.MapPath(“〜/ XMLFiles /”+“XMLFile”+“。xml”),System.Text.Encoding.UTF8);         //启动XM DOcument         writer.WriteStartDocument(真);         writer.Formatting = Formatting.Indented;         writer.Indentation = 2;         // ROOT元素         writer.WriteStartElement( “MBServerList”);         串温;         writer.WriteStartElement( “SelectedNodedsInfo”);         foreach(TreeView1.CheckedNodes中的TreeNode节点)         {             temp =(node.Text).ToString();

        if (node.Checked)
        {     
           if (node.Depth == 0)
                {
                    writer.WriteStartElement("Scanning Entire Tree");
                    writer.WriteString(node.Text);
                    writer.WriteEndElement();
                    break;   
                 }

            if (node.ChildNodes.Count > 0)
            {


              {
                    writer.WriteStartElement("Server");
                    writer.WriteString(node.Text);


                    foreach (TreeNode cnode in node.ChildNodes)
                    {

                        if (cnode.Checked)
                        {
                            writer.WriteStartElement("Store");
                            writer.WriteString(cnode.Text);
                            writer.WriteEndElement();
                        }
                    }
                    writer.WriteEndElement();
                }
            }
            else
            {
                if ((node.Depth == 1)||(node.Depth == 2) && (node.Parent.Checked == false))
                {
                    writer.WriteStartElement("Server");

                    writer.WriteString(node.Parent.Text);

                    writer.WriteStartElement("Store");
                    writer.WriteString(node.Text);
                    writer.WriteEndElement();
                    writer.WriteEndElement();
                }
            }

        }


    }
    writer.WriteEndElement();
    lblResult.Text = "XML File ceated!";


    writer.WriteEndElement();
    //End XML Document
    writer.WriteEndDocument();
    //Close writer
    writer.Close();
}

更新:从树视图(Till Depth level 3)获取选中的值,并为其创建xml文件。