6

私はC#でASP.NETプロジェクトを書いています。

UpdateUserInfo.aspxページは、テキストボックスとボタンで構成されています。pageLoad()メソッドで、テキストボックスにテキストを設定し、ボタンをクリックすると、テキストボックスの新しい値を取得してDBに書き込みます。

問題は、textbox textbox.Text()メソッドの値を変更した場合でも、textboxの古い値( "sometext")を返し、これをDBに書き込むことです。

ここに方法があります:

protected void Page_Load(object sender, EventArgs e)
{
    textbox.text = "sometext";
}

void Btn_Click(Object sender,EventArgs e)
{
    String textbox_text = textbox.text();// this is still equals "somevalue", even I change the textbox value
    writeToDB(textbox_text);
}

では、最初はテキストボックスを何らかの値で表示する方法ですが、ユーザーがこの値を変更すると、getTextメソッドは新しい変更された値を返し、これをDBに書き込みますか?

4

4 に答える 4

16
protected void Page_Load(object sender, EventArgs e)
{
   if(!Page.IsPostBack)
    {
       textbox.text = "sometext";
    }
}

ポストバックは"somevalue"、ボタンクリック時にテキストボックスのテキストプロパティを元に戻すことです。上記のように、値を1回だけ設定する必要があります。

ポストバックの説明:

ASP Web開発のコンテキストでは、ポストバックはHTTPPOSTの別名です。インタラクティブなWebページでは、フォームのコンテンツがサーバーに送信され、一部の情報が処理されます。その後、サーバーは新しいページをブラウザに送り返します。

これは、ログイン用のパスワードを確認したり、オンライン注文フォームを処理したり、クライアントコンピューターだけでは実行できないその他のタスクを処理したりするために行われます。これは、ブラウザのボタンによって実行される更新または戻るアクションと混同しないでください。

ソース

ビューステートを読むことは、すべてがどのように組み合わされているかを理解するのにも役立ちます。

于 2012-06-08T11:55:36.270 に答える
2

これを試して:

If (!IsPostBack) 
{   
textbox.text = "sometext";
} 
于 2012-06-08T12:01:19.643 に答える
1

実際にページの読み込みtextboxが再初期化されます

 protected void Page_Load(object sender, EventArgs e)
    {
       if(!Page.IsPostBack)
        {
           textbox.text = "sometext";
        }
    }
    void Btn_Click(Object sender,EventArgs e)
    {
        String textbox_text = textbox.text;
        writeToDB(textbox_text);
    }
于 2012-06-08T11:57:52.377 に答える
1

ページ読み込みイベントのページポストバックを確認してください。

于 2012-06-08T11:59:05.890 に答える