0

我有一个 asp.net 页面,我在其中使用 c# 读取 xml 文档并将每个条目添加到列表视图中。

然后,我拥有让用户向列表视图添加新条目的功能,但我不知道如何将其保存在按钮事件中。

这是我必须加载的文件。

protected void Button6_Click(object sender, EventArgs e)
         {
             XmlDocument xmlDocument = new XmlDocument();
        using (DataTable tabListView1 = new DataTable())
        {
            tabListView1.Columns.Add("value", Type.GetType("System.String"));
            xmlDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "/XmlFile/ListView1.xml");
            XmlNodeList xmlNodeList = xmlDocument.SelectNodes("root/data[@open='1']");
            foreach (XmlNode xmlNode in xmlNodeList)
            {
                DataRow dr = tabListView1.NewRow();
                dr["value"] = xmlNode.InnerText;
                tabListView1.Rows.Add(dr);
            }
            ListView1.DataSource = tabListView1;
            ListView1.DataBind();
        }
        TextBox3.Text = "Microsoft";

    }

如何让它将更改保存回 ListView1.xml?谢谢!

4

1 回答 1

0

假设您可以从您管理它的控件中将数据源作为 DataTable 取回,这应该会有所帮助。

private static void SaveXml(string pathAndFileName, DataTable source)
{
XmlDocument xmlDoc = new XmlDocument();
var root = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(root);

     foreach (DataRow row in source.Rows)  
     {
        var dataElement = xmlDoc.CreateElement("data");
        var openAttribute = xmlDoc.CreateAttribute("open");
        openAttribute.Value = "1";
        dataElement.Attributes.Append(openAttribute);
        dataElement.InnerText = row["value"].ToString();
        root.AppendChild(dataElement);
     }
     xmlDoc.Save(pathAndFileName);
  }

于 2013-03-26T05:52:54.017 回答