4

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

2 に答える 2

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 
            { 
            } 
        } 
于 2012-11-30T20:09:00.047 に答える
0

編集したテキスト ボックスを送信する場合は、コードをPageloadwithIsPostbackチェックでラップして、値が元の値にリセットされないようにする必要があります。

于 2012-11-29T14:41:34.100 に答える