0

1 つのテキスト ボックスと 1 つの更新ボタンがあります。

テキストボックス:

<asp:TextBox ID="txtFName" runat="server"></asp:TextBox>

更新ボタン:

<asp:Button ID="btnUpdFName" runat="server"Text="Update" onclick="btnUpdFName_Click"/>

ページ読み込みイベントで行っていることデータベースから最初の名前を取得し、次のようにテキスト ボックスに割り当てています。

txtFName.Text = dt.Rows[0][1].ToString();

上記のようにテキストボックスのページロードイベントで設定されたテキストをearasesし、別の名前を書いて更新ボタンを押すと、次のようにボタンクリックイベントでテキストボックスに入力された新しいテキストを取得しようとしています:

string FName = txtFName.Text;

しかし、問題は、テキスト ボックスに新しいテキストを書き込むたびに、設定されたフォーム データベース(dt.Rows[0][1].ToString())と同じテキストを取得していることです。テキスト ボックスから現在のテキストを取得できず、ページ ロード イベントで db から設定された初期値のみを取得します。

コンパイル後にテキストボックスのマークアップが次のようになることに遭遇しました。

<input id="CPHcontent_txtFName" type="text" value="value set from db i.e. dt.Rows[0] [1].ToString()" name="ctl00$CPHcontent$txttxtFName"></input>

テキストボックスには、常にデータベースから設定された同じ値があります。そのため、ユーザーがテキスト ボックスに入力した値に関係なく、毎回同じ値を取得しています。

ページの背後にあるテキスト ボックスの更新された値を取得する方法を教えてください。

事前にサンクス

4

3 に答える 3

2

asp.net Webフォームでは、データを制御するように設定するためのコードと、データをdbに保存するためのコードを分離する必要があります。制御するデータを設定する方法の 1 つ - チェックを使用

if (!IsPostBack)
{
    txtFName.Text = dt.Rows[0][1].ToString();
} 

ページ読み込みイベントで。そうしないと、ページが読み込まれるたびにテキストボックスに新しく入力したテキストが上書きされます。

于 2013-07-25T07:58:53.153 に答える
0

ページロード時に再度設定/読み取りを試みる前に、テキストボックスを空またはnullに設定してください。

于 2013-07-25T07:52:49.017 に答える