はそれを考え出しました!ここでは、何時間もインターネットを掃除した後に見つけたものを紹介します。
解決方法: ダイナミックコントロールを使用する場合、次のポストバックまでしか存在しないことを忘れないでください.ASP.NETは動的に追加されたコントロールを再作成しません。コントロールを何度も再作成する必要がある場合は、PageLoadイベントハンドラでコントロールの作成を実行する必要があります(現在は、Condition:!IsPostabckを使用して初めてTextBoxを作成するだけです)。これには、動的コントロールでビューステートを使用できるという追加の利点があります。 PageLoadイベントの前にビューステートが正常に復元されても、PageLoadイベントのハンドラにコントロールを作成すると、ASP.NETはPageLoadイベントハンドラが終了した後のビューステート情報を適用します。
したがって、条件:!IsPostbackを削除して、ページが読み込まれるたびにTextBoxコントロールも作成されるようにします。 PageLoadハンドラが完了した後に保存されるテキストの状態ボックスも表示されます。 [ViewStateを無効にしていないことは明らかです。 ]
例:
保護のボイドをPage_Load(オブジェクト送信者、EventArgsの電子) {
TextBox txtBox = new TextBox();
// Assign some text and an ID so you can retrieve it later.
txtBox.ID = "newButton";
PlaceHolder1.Controls.Add(txtBox);
} は今それを実行した後、テキストボックスに何も入力し、あなたがいずれかをクリックしたときに何が起こるかを見ますポストバックを引き起こすボタン。テキストボックスはまだ状態を維持しています!
すべてのポストバックで動的コントロールを再作成してください。 – VDWWD
@VDWWDこれはどういう意味ですか?あなたは例を挙げることができますか? –
https://www.aspsnippets.com/Articles/Dynamic-Controls-Made-Easy-in-ASP.Net.aspx – VDWWD