我将queryString中的值分配给这些文本框,并且工作正常,但每当我编辑其中一个文本并尝试将编辑后的数据保存在XML节点中时,我就不能
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString != null)
{
TextBox_firstname.Text = Request.QueryString["column1"];
TextBox_lastname.Text = Request.QueryString["column2"];
}
else
{
}
}
这段代码有什么用吗?它将未经编辑的版本保存在节点中!
public string str_id;
public int id;
id = int.Parse(str_id);
XDocument xdoc = XDocument.Load(filepath);
if (id == 1)
{
var StudentNodeWithID1 = xdoc.Descendants("students")
.Elements("student")
.Where(s => s.Element("id").Value == "1")
.SingleOrDefault();
StudentNodeWithID1.Element("first_name").Value = TextBox_firstname.Text;
StudentNodeWithID1.Element("last_name").Value = TextBox_lastname.Text;
}
答案 0 :(得分:1)
每次加载时都会触发Page_Load(在回发时和初始加载时)。在事件处理程序尝试保存之前,您的代码当前在每次加载时从Request.QueryString
默认值。
请改为:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack && Request.QueryString != null)
{
TextBox_firstname.Text = Request.QueryString["column1"];
TextBox_lastname.Text = Request.QueryString["column2"];
}
else
{
}
}
答案 1 :(得分:0)
如果您要提交已编辑的文本框,则需要使用Pageload
检查IsPostback
中的代码,以确保不会将值重置为原始值。