2016-04-24 7 views
0

2つのWebページがあり、セッションを使用してデータを送信します。次に、2ページ目には、ユーザーが必要に応じてテキストボックスにそれらの値を編集することができます最初のウェブページから、私は2番目のページへのセッションを使用してデータを取得し、以下のようにLayoutTemplate内のテキストボックスにLayoutTemplate内のTetxtboxは、Cで変更されたテキストを取得していません。

protected void Page_Load(object sender, EventArgs e) 
     { 
      instructrid = Int32.Parse(Session["instructorId"].ToString()); 
      ((TextBox)Login1.FindControl("userName")).Text = Session["firstname"].ToString(); 
      ((TextBox)Login1.FindControl("password")).Text = Session["surname"].ToString(); 
      ((TextBox)Login1.FindControl("gender")).Text = Session["gender"].ToString(); 
      ((TextBox)Login1.FindControl("email")).Text = Session["email"].ToString(); 
      ((TextBox)Login1.FindControl("style")).Text = Session["style"].ToString(); 
      ((TextBox)Login1.FindControl("phonenumber")).Text = Session["phonenumber"].ToString(); 
      ((TextBox)Login1.FindControl("hourlyRate")).Text = Session["hourlyRate"].ToString(); 
      ((TextBox)Login1.FindControl("availability")).Text = Session["availability"].ToString(); 
     } 

を設定します。次に、変更された値をデータベースに送信して更新します。しかし、問題は、データがセッション値から変化していないことです。私はテキストボックスの値を編集することができますが、バックエンドではセッションから設定された値と同じです。以下はボタンをクリックして値を取得するコードです。

protected void Button1_Click(object sender, EventArgs e) 
     { 
      string firstname = ((TextBox)Login1.FindControl("userName")).Text; 
      string surname = ((TextBox)Login1.FindControl("password")).Text; 
      string gender = ((TextBox)Login1.FindControl("gender")).Text; 
      string email = ((TextBox)Login1.FindControl("email")).Text; 
      string style = ((TextBox)Login1.FindControl("style")).Text; 
      string phonenumber = ((TextBox)Login1.FindControl("phonenumber")).Text; 
      string hourlyrate = ((TextBox)Login1.FindControl("hourlyRate")).Text; 
      string availability = ((TextBox)Login1.FindControl("availability")).Text; 
      DBClass.editInstructor(instructrid, firstname, surname, gender, email, style,phonenumber, hourlyrate, availability); 
     } 

これはどういうことか分かりません。助けてください

答えて

1

それはあなたがあなたがあなたが保存ボタンをクリックすると古い値がコピーされているときに、ページの読み込みに値を設定しているので、最初にテキストボックスに入力してからdbに保存されます。 if(!IspostBack)の中にページロードコードを置くだけで動作します。

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!IsPostBack) 
     { 
     instructrid = Int32.Parse(Session["instructorId"].ToString()); 
     ((TextBox)Login1.FindControl("userName")).Text = Session["firstname"].ToString(); 
     ((TextBox)Login1.FindControl("password")).Text = Session["surname"].ToString(); 
     ((TextBox)Login1.FindControl("gender")).Text = Session["gender"].ToString(); 
     ((TextBox)Login1.FindControl("email")).Text = Session["email"].ToString(); 
     ((TextBox)Login1.FindControl("style")).Text = Session["style"].ToString(); 
     ((TextBox)Login1.FindControl("phonenumber")).Text = Session["phonenumber"].ToString(); 
     ((TextBox)Login1.FindControl("hourlyRate")).Text = Session["hourlyRate"].ToString(); 
     ((TextBox)Login1.FindControl("availability")).Text = Session["availability"].ToString(); 
     } 
    }