2011-07-27 22 views
0

私のページにはテキストボックスとボタンコントロールがあります。テキストボックスの場合、ビューステート、ページロードイベントを有効にしました。テキストボックス値 "Hello Mr!"を設定しています。ポストバックが発生したときに、テキストボックスのビューステートの値を "Hello Mr Pradeep!"に変更したいのですが、どうすればいいですか?そして、私はそれをすべて行うことができます。ビューステートの値を動的に変更する方法は?

<asp:TextBox ID="TextBox1" runat="server" EnableViewState= "true"/> 
     <br /> 
     <br /> 
     <asp:Button ID="Button1" runat="server" Text="Button" /> 

protected void Page_Load(object sender, EventArgs e) 
     { 
      TextBox1.Text = "Hello Mr!"; 
     } 

おかげで、

プラディープ

+0

いくつかの用語が混ざっていますか?ポストバックとは、ページがユーザーに表示(レンダリング)され、ユーザーがそのページをサーバーに戻すアクションをトリガーする場合です。テキストボックスがデータベースから読み込まれた後、ユーザーに表示される前に、テキストボックスの値を変更しようとしていますか?そのような場合は、Page_PreRenderで行うことができます。ほとんどの人が混乱しているのは、なぜviewstateを変更したいのかということです(viewstateは値と同じではありません)。 – rkw

答えて

0

は限り私はあなたの質問を理解して、ページロードイベントに

+0

java-scriptを使用せずにビューステート値を動的に変更したいです。 – Pradeep

+0

「ダイナミック」とは何を意味していますか?既にページロードで更新しています。詳細やケースシナリオを分かりやすく分かりますか? –

+0

サンプルページのレンダリングイベントです。ビューの状態値を変更したい'Hello Mr!'のテキストボックス「ハロー・ミー・プラデプ」へ – Pradeep

0

を使用してこのJavaScriptを行うことができますあなたのページは、ページの初期化の間でビューステートを取得していますページロードイベントの直前に実行されます。したがって、ビューの状態を変更するためのより早い試みは、ページの読み込みにあります。 検索前に変更すると、変更が失われる可能性があるためです。

protected override void OnInit(EventArgs e) 
     { 
      if (IsPostBack) 
      { 
       //on postback ViewSate["test"] is null 
       ViewState["test"] = "Valuepostback"; 
       //Now ViewSate["test"] is Valuepostback 

      } 
      base.OnInit(e); 
     } 
     protected override void OnLoad(EventArgs e) 
     { 
      if (IsPostBack) 
      { 
       //on postback ViewState has been reloaded from the page sent and therefore the initial value set in the oninit does not exists anymore 
       //ViewState["test"] is MyValue 
       //if you want to cahnge specifically the view state do it here 
      } 

      if (!IsPostBack) 
       ViewState["test"] = "MyValue"; 

      base.OnLoad(e); 
     } 
関連する問題