チェックボックスである TemplateField が 1 つあるグリッドがあり、2 つのバインドされたフィールドがあります。
ポストバックの Page_Load で、セッションに保存されたキャッシュされたデータセットでグリッドを再バインドします。ユーザーがグリッドのチェックボックスを選択すると、ポストバック時にグリッドを反復処理してチェックされた値を取得でき、すべて正常に動作します。
ポストバックのグリッド バインディングのコードを Page_Load ではなく OnInit に移動すると、ユーザーがチェックしたチェックボックスのデータが失われます。なんで?oninit の後、ポストバック データをグリッドの上に重ねてはいけませんか?
それはpage_loadで動作します。グリッドを再バインドすると、ポストバックデータを持つグリッドにデータをオーバーレイしていると想定しています。チェックボックス列がバインドされていないため、ポストバックデータを上書きしません。
注: ビューステートはグリッドで無効になっています。ポストバックごとに (セッションに保存された) データをバインドします。また、OnInit を使用している場合、ポストバックがトリガーされたページに関係なく、すべてのポストバックでグリッドの最初のページを取得します。ありがとう。