我有一个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?谢谢!
答案 0 :(得分: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);
}
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);
}