Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XML节点编辑。_C#_Asp.net_Xml - Fatal编程技术网

C# XML节点编辑。

C# XML节点编辑。,c#,asp.net,xml,C#,Asp.net,Xml,我将查询字符串中的值分配给这些文本框,这样做很好,但是每当我在其中一个文本框中编辑文本并试图将编辑后的数据保存到XML节点中时,我就不能这样做 protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString != null) { TextBox_firstname.Text = Request.QueryString["column1"]; Te

我将查询字符串中的值分配给这些文本框,这样做很好,但是每当我在其中一个文本框中编辑文本并试图将编辑后的数据保存到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; 
}

如果您要提交编辑的文本框,则需要在
Pageload
中使用
IsPostback
复选框包装代码,以确保值不会重置为原始值。

每次加载(回发和初始加载时)都会触发页面加载。在事件处理程序尝试保存之前,您的代码当前正在对每次加载的
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 
            { 
            } 
        } 
“编辑文本”是指在框中键入新文本并提交表单(回发)?如果是这样,测试查询字符串的逻辑仍将激发,因为查询字符串(可能)仍然存在。如果是这种情况,您可以检查
IsPostback
。如果不是这样,请发布更新XML的事件处理程序。