0

C# でいくつかのテーブルを動的に作成すると、ビューステートの問題が発生します。最初に依存するチェックボックステーブルと数値入力テーブルがあります。ポストバックを引き起こすボタンを押すと、いくつかの問題が発生します。ここにフローチャートがあります。

Page_Load

  • チェックボックステーブルを作成する
  • 数値入力テーブルを作成します (チェック ボックスは常に空で、テーブルの行数は間違っていますが、数値はポストバックから正しく入力されます)

ポストバック ボタン

  • 数値入力テーブルを作成します (チェック ボックスにデータが入力され、テーブルの行数は正しくなりましたが、数値はポストバックに耐えられませんでした)。

数値入力テーブルを作成する前に、viewstate をチェックボックス テーブルにロードする方法はありますか? 数値エントリ テーブルをいずれかの場所 (ページの読み込みまたはポストバック ボタン メソッド) で作成しようとしましたが、どちらも完全に正しくありません。ビューステートを表示するには、読み込みごとに動的コンテンツを作成する必要があることを知っています。

チェックボックスが正しく再表示されるようにするには、データテーブルを作成してビューステートに保存する必要があると思います...

4

1 に答える 1

0

PreInitページのまたはInitイベントに動的コントロールを追加します。Init後で追加することもできますが、フェーズの後はViewState、コントロール用のデータが読み込まれるときです。

コントロールの実行中にコントロールを追加した場合、コントロールはキャッチアップPage_Loadを再生する必要があります。つまり、ページの残りの部分に追いつくまで、ページのライフサイクル内のすべてのイベントを実行します。これにより、発生している問題が発生している可能性があります。

Page Lifecycleおよびに関する優れた記事は次のとおりです。http ViewState//www.codeproject.com/Articles/24611/ASP-NET-Internals-Viewstate-and-Page-Life-Cycle

于 2012-12-07T17:18:58.813 に答える