1

非常によく似た質問がありますが、解決策が見つからないように見える問題があります。

基本的に、Page_Loadメソッドでプログラムによって作成されたテキストボックスがあります。それらは特定のCookieからの値で満たされています。

次に、[更新]ボタンがあります。このボタンをクリックすると、テキストボックスに読み込まれたCookieが更新されます。

そこで、Cookieと同じ名前のテキストボックスのIDを指定し、更新ボタンのOn_Clickメソッドで、テキストボックスを循環して、テキストボックスの値でCookie(ID名)を更新します。

ただし、これは機能していません。私が試したのは次のとおりです。

コントロールは、onloadメソッドで簡単に作成されます。次に、テキストボックスを変更した後でボタンをクリックすると、onloadメソッドが再度呼び出され、テキストボックスが元の状態に戻され、元の状態に更新されます。

コントロールは、をチェックした後、onloadメソッドで作成されif (!Page.IsPostBack)ます。ページロードメソッドが最初に呼び出され、画面上にコントロールが作成されないため、これは機能しません。画面が空白で、Cookieが更新されていない左側。

うまくいかなかったものを試してみましたが、それでも何も起こらなかったEnableViewStateときに、自分でコントロールを作成してみました。(Page.IsPostBack)

何か案は?

4

2 に答える 2

3

Yuoは、onLoadメソッドでコントロールを作成し、 if (!Page.IsPostBack)コードブロック内でそれらに初期値を与える必要があります。このようにして、毎回コントロールツリーを作成しますが、更新された値を失って値を再初期化することはありません。

于 2011-11-21T11:00:27.440 に答える
1

Initイベント中にコントロールを作成する必要があり、ロードするたびに作成する必要があります(IsPostBackをチェックしないでください)。これらのコントロールがポストバックを発生させ、ビューステートからプロパティを設定するには、イベントが発生する前にページ階層にある必要があります。

Init中にコントロールを作成し、IsPostBackをチェックした後にLoadイベントにデータを設定するだけの場合、コントロールは最初に初期化されてからビューステートデータから入力されるため、Webサイトに入力されたテキストを保持します。

于 2011-11-21T18:00:22.510 に答える