将文本框文本保存到XML文件中

我有一个带有1个按钮和4个文本框的ASP.NET WebForm。

每次加载页面时,都会执行以下代码从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,这就是为什么会发生这种情况,但即使我用OnClientClick = return false;禁用postOnClientClick = return false; 它仍然无法正常工作。

有任何想法吗?

编辑(12:06):

我不认为我已经说过问题出在哪里,我想更多地说明问题。

单击该按钮时,首先执行以下function:

 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; } } 

这是不起作用的function。 它只是不将新数据保存到XML文件中。

这应该可以解决您的问题:

 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { PutWhatWasBefore(); } } 

这将确保代码仅在最初访问页面时运行。