3

これはかなり簡単だと思っていましたが、シンプルでスマートなソリューションを見つけたり見つけたりすることはできません。

CheckBoxList があり、OnSelectedIndexChanged イベントがあります。ユーザーがボックス内の項目を選択 (チェック) すると、イベントが発生し、分離コードが実行されます。単純。

ユーザーがボックスのチェックを外した場合、バックグラウンドでいくつかの作業を行う必要がありますが、問題は、ユーザーがリスト内のアイテムの選択を解除するとイベントが発生することですが、イベントのコード内では、リストはどのアイテムへのポインターを保持しませんユーザーが選択を解除しました。私はこれを奇妙に感じ、さまざまな検索で具体的なものは何も得られませんでしたが、明らかな何かを見逃しているに違いないと思います.

チェックされたアイテムの背後にあるコードのリストを維持でき、イベントが発生するたびに削除されたものを把握できると思いますが、より簡単な解決策がある場合、これはやり過ぎのようです。

ありがとう、マイケル

4

1 に答える 1

4

はい、送信者をキャストしても、チェックされていないアイテムを見つける簡単な方法はありません

以下は、イベントを発生させるアイテムのインデックスを提供するトリッキーなコードです

protected void checkboxlist_SelectedIndexChanged(object sender, EventArgs e)
{
        CheckBoxList list = (CheckBoxList)sender;
        string[] control = Request.Form.Get("__EVENTTARGET").Split('$');
        int idx = control.Length - 1;
        string sel = list.Items[Int32.Parse(control[idx])].Value;  
}

インデックスを取得したら、項目を選択してコードを記述できます。

于 2012-04-19T15:18:02.793 に答える