0

にコレクションを設定し、コレクションからUserControl動的LinkButtonコントロールを作成します。クリックすると、ポストバック時にコレクションが空になります。この動作は設計によるものですか、それともコードで再設定せずにポストバック時にコレクションを設定し続けるためにできることはありますか? フォームのポストバックで再クエリする必要がありますか?

4

2 に答える 2

2

継承するクラスで定義されたすべての変数Web.UI.Pageは、ページ ライフサイクル (コントロールとフィールドを含む) の最後に破棄されるため、null再初期化しない場合はポストバックになります。

ポストバック間で永続化する 1 つの方法は、それをSession-variableに保存することです。

ポストバック間で変数を保持する方法に関するすべてのオプションの完全なリストは、http://msdn.microsoft.com/en-us/magazine/cc300437.aspx にあります

  • 応用
  • クッキー
  • フォーム投稿/隠しフォーム フィールド
  • クエリ文字列
  • セッション
  • ASP.NET の新しい状態コンテナー
  • キャッシュ
  • 環境
  • ビューステート
  • Web.config および Machine.config ファイルのまとめ

ステートレスなのはHTTPの性質です。

于 2013-10-05T20:11:40.540 に答える
1

ViewStateポストバック後に ViewState が読み込まれるときに、情報を永続化し、コントロールを再作成する必要があります。たとえば、作成されたボタンの数を保存してから、それらを再作成できます。

https://stackoverflow.com/a/15497035/1711598で同様のソリューションを参照してください

于 2013-10-05T20:14:21.313 に答える