0
<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.netTreeViewコントロールを持っています。ノードをチェックするとき、btnCreateXMLのクリックイベントでコードビハインドからそれらのチェックされた値を取得できます。node.Textに入力する値、そのためのXMLファイルを作成します。これを達成する方法(選択したノードのみ)?どんな助けでも素晴らしいでしょう!

4

1 に答える 1

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ドキュメントを開始しますwriter.WriteStartDocument(true); writer.Formatting = Formatting.Indented; writer.Indentation = 2; //ルート要素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();
}

更新:treeview(Till Depth level 3)からチェックされた値を取得し、同じもののxmlファイルを作成します。

于 2012-11-20T12:08:07.867 に答える