0

この問題について同様の質問があることは知っていますが (たとえば、ここここ)、私の問題に役立つ回答はありません。

データベースに登録されているすべてのユーザーを表示する ListView コントロールがあり、ユーザーが承認されているかどうかを示す各ユーザーの CheckBox があり、CheckBox の Checked プロパティが変更されたときに変更を直接保存したいと考えています。

ListView_ItemDataBound にイベント ハンドラーを追加するのは正しくないことはわかっています。CheckBox の AutoPostback の後に新しいバインディングがないため、イベント ハンドラーが失われるからです。一方、メソッドを ASPX ファイルに直接追加することはできません。この方法では、変更の影響を受けるユーザーがわからないためです (少なくとも、できないと思います)。

何か提案はありますか?

どうもありがとう

4

2 に答える 2

1

だから私は同じ問題に遭遇しました。興味があります。ページの読み込み時に、ポストバックかどうかを確認していますか?

if(!Post.IsPostBack){
//normal page load
}

そのチェックがない場合は、ページの読み込みロジックが呼び出されます。私の場合は、データ オブジェクトで毎回チェックボックスをリセットしていました。

于 2012-12-09T03:12:49.140 に答える
1

いくつかのオプションがあります。

ListView.ItemCommandイベントが発生する可能性があります。ただし、ドキュメントではボタンのみが指定されているため、よくわかりません。実験してみるといいかもしれません。

もう 1 つのオプションは、ListView.ItemCreatedコマンドを利用することです。ListView がバインドされているかどうかに関係なく、これは常に実行されると思います。これは、ViewState からのものであっても、アイテムを常に作成する必要があるためです。そのイベントのイベント ハンドラーで行うことは、イベント ハンドラーをCheckBox ClickorCheckChangedイベントにアタッチすることです (CheckBox 状態変更イベントのサーバー側の名前を忘れてしまいました)。

于 2012-09-21T15:08:24.990 に答える