2016-03-22 27 views
0

この単純なコードで何が問題なのか理解できません。セッションにテキストボックス値を割り当てる

ページの負荷がこれは正常に動作します

tbgiris.Text = Convert.ToString(Session["giris"]); 
    tbmail.Text = Convert.ToString(Session["mail"]); 
    tbisim.Text = Convert.ToString(Session["isim"]); 
    tbgrup.Text = Convert.ToString(Session["grup"]); 
    tbkimlik.Text = Convert.ToString(Session["kimlik"]); 
    tbadmin.Text = Convert.ToString(Session["admin"]); 

、セッションデータとテキストボックスを充填することから始まります。その後、私は失敗場所です、確認として

Session["giris"] = tbgiris.Text; 
    Session["mail"] = tbmail.Text; 
    Session["isim"] = tbisim.Text; 
    Session["grup"] = tbgrup.Text; 
    Session["kimlik"] = tbkimlik.Text; 
    Session["admin"] = tbadmin.Text; 

    tbgiris.Text = Convert.ToString(Session["giris"]); 
    tbmail.Text = Convert.ToString(Session["mail"]); 
    tbisim.Text = Convert.ToString(Session["isim"]); 
    tbgrup.Text = Convert.ToString(Session["grup"]); 
    tbkimlik.Text = Convert.ToString(Session["kimlik"]); 
    tbadmin.Text = Convert.ToString(Session["admin"]); 

をテキストボックスをブラウザに手動でこれらのテキストボックスの値を編集して、単純にテキストボックス内の指定されたデータとのセッション値を更新する必要があり、ボタン関数を呼び出し、再書き込み。セッション値は同じままで更新されません。

Session["giris"] = "test string"; 

のように、セッションの値を静的な値に変更すると、セッションとテキストボックスが更新されます。しかし、テキストボックスから値を取得しようとすると、テキストボックスのテキストを変更したことがないようにコードが動作します。事前

答えて

2

私はあなたがしたが、その後、あなたはそれを戻すテキストボックス

のテキストを変更したことがないようにコードが動作します。イベントハンドラが実行される前に、ASP.NET Webフォームページのライフサイクルで

Page_Loadはポストバック上で実行されます。だから何が起こっていることは次のとおりです。

  • は(これが問題である)Page_LoadTextBox値を設定ページ
  • を提出Page_Load
  • 表示ページ
  • 変更値
  • TextBox値を設定します
  • イベントハンドラでTextBoxの値を取得する
コードは、ページが最初にロードされている場合にのみ実行される方法

if (!IsPostBack) 
{ 
    // your logic here 
} 

、あなたので:ポストバック上で実行されるからあなたPage_Loadロジックを防ぐために、あなたは条件付きでそれをラップしたい

すべてのポストバックで更新された値を上書きしません。

0

おかげで、それはあなたが古い値を取得しているThatsなぜテキストボックスにセッションで同じ古い値を代入バック時のページのポストので、この内部を置きます。

if (!IsPostBack) 
    { 
    tbgiris.Text = Convert.ToString(Session["giris"]); 
    tbmail.Text = Convert.ToString(Session["mail"]); 
    tbisim.Text = Convert.ToString(Session["isim"]); 
    tbgrup.Text = Convert.ToString(Session["grup"]); 
    tbkimlik.Text = Convert.ToString(Session["kimlik"]); 
    tbadmin.Text = Convert.ToString(Session["admin"]); 
    } 
関連する問題