1

更新パネル内の Asp Textbox は、ページの読み込み時にデータベースからの値を表示します。更新パネル内のボタンは、ポストバックをトリガーします。データベース プロシージャは、表示される値を変更します。(!Page.IsPostBack) の場合、テキストボックスのテキストは Page_Load でデータベースから更新されます。Page_Load の最後に、テキスト ボックスの値が更新されていることを確認します。画面の表示値が更新値に変わらない。

他の投稿に基づいて、テキスト ボックス テキストの更新を OnPreRender イベントに移動して同じ結果を得ようとしました。

これまでの私の唯一の回避策は、ポストバックごとに新しい ID を使用してコントロールを再作成し、投稿されたデータ (ID に追加されたタイムスタンプを使用) から再入力されないようにし、正規表現を使用してベース名でコントロールを見つけることです。このようにして、正しい値を表示して次のポストバックで読み取ることができますが、面倒な回避策のようです。

ポストバック中にテキストボックスを更新し、値を「固定」する適切な.NETの方法は何ですか?

4

1 に答える 1

0

表示目的のためだけに texbox を使用する場合は、使用しないでください。if (!Page.IsPostBack)

テキストボックスの値を使用する必要がある場合。それで

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
    TextBox1.Text = %YOUR_INITIAL_DB_VALUE%;
}

protected void Button1_Click(object sender, EventArgs e)
{
  string userInput = TextBox1.Text;
  TextBox1.Text = %YOUR_NEW_DB_VALUE%;
}
于 2012-05-22T15:51:52.827 に答える