保存文本框文本到XML文件
本文关键字:文本 文件 XML 保存 | 更新日期: 2023-09-27 18:17:29
我有一个ASP。. NET WebForm, 1个按钮和4个文本框。
每次加载页面时,执行以下代码从XML文件读取数据并显示在文本框中:
private void PutWhatWasBefore()
{
var xml = XDocument.Load(@"C:'Settings.xml");
From_display.Text = xml.Element("Settings").Element("Remember").Attribute("fromdisplay").Value.ToString();
From_Smtp.Text = xml.Element("Settings").Element("Remember").Attribute("fromsmtp").Value.ToString();
subject.Text = xml.Element("Settings").Element("Remember").Attribute("subject").Value.ToString();
}
这段代码工作得很好,它把所有内容都放在文本框中。但是,这是一个很大的但是,当我单击按钮时,以下代码写入XML文件不起作用:
string tem = Template1.Text;
string from = From_Smtp.Text;
string dis = From_display.Text;
string sub = subject.Text;
var x = new XDocument(
new XElement("Settings",
new XElement("Remember",
new XAttribute("fromsmtp", from),
new XAttribute("subject", sub),
new XAttribute("fromdisplay", dis),
new XAttribute("template", tem)
)
)
);
x.Save(@"C:'Settings.xml");
无论我如何改变文本框中的数据,每次我点击按钮,数据都会恢复到原来的状态。
我认为这是一个post back,这就是为什么会发生这种情况,但即使我禁用post back与OnClientClick = return false;
它仍然不起作用。
任何想法?
编辑(12:06):
我想我还没有说问题在哪里,我想更深入一点。
当我点击按钮时,首先执行以下函数:
private void SaveNames()
{
try
{
string tem = Template1.Text;
string from = From_Smtp.Text;
string dis = From_display.Text;
string sub = subject.Text;
var x = new XDocument(
new XElement("Settings",
new XElement("Remember",
new XAttribute("fromsmtp", "He2"),
new XAttribute("subject", sub),
new XAttribute("fromdisplay", dis),
new XAttribute("template", tem)
)
)
);
x.Save(@"C:'Program Files (x86)'ActivePath'MailSenderWeb'Settings.xml");
}
catch (Exception ex)
{
AnswerAndError.Text = ex.Message;
}
}
这是不起作用的函数。它只是不将新数据保存到XML文件中。
这应该能解决你的问题:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
PutWhatWasBefore();
}
}
这将确保代码只在初始访问页面时运行。