- - PR -
GridViewでページ遷移時チェックボックスの状態を保存する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-04-04 11:39
初めまして。この度はお世話になります。
VisualStudio2005で、Webアプリケーションを作っています。 私が現在担当しているのはセミナー参加受付画面です。 参加対象会員を一覧表示し、参加する人をチェックして、 チェックされた会員の参加受付処理を行います。 GridViewを使用して、会員を3列で一覧表示しています。 レイアウトは CheckBox、会員番号、氏名、CheckBox、会員番号、氏名、CheckBox、会員番号、氏名 になっています。 CheckBoxの列はTemplateFieldになっていて、 チェックボックスの他にラベルを配置しています。 ラベルはデフォルトでは非表示です。 一覧表示する際、既に受付済みの人はチェックボックスが非表示になり、 ★マークでラベルを表示しています。 会員数は表示する団体によって異なるのですが、団体によっては 1,000人程度の団体もあり、ページング機能を有効にしています。 そこで壁にぶつかってしまったのですが、 違うページに遷移した場合、遷移前のページのチェック状態を保持する方法はないでしょうか? GridViewで再読み込みを行わずに表示ページを切り換える http://codezine.jp/a/article.aspx?aid=564 という情報もみつけたのですが、この方法だとTemplateFieldは使えないらしいので 今回はあてはまりませんよね・・・。 ページ遷移時に、チェックされた会員番号を配列で保存しておく事も考えたのですが、 一旦チェックして、ページ遷移した後、また同じページに戻ってきて、 チェックを外した場合、どうしたらよいか思いつきませんでした・・・。 このような処理を行いたい場合、みなさんはどうされますか? みなさんのお知恵をお貸し頂けると嬉しいです。 何卒よろしくお願い致します。 [ メッセージ編集済み 編集者: 未記入 編集日時 2007-04-04 11:40 ] | ||||
|
投稿日時: 2007-04-04 11:52
チェックを外されたら保存してある配列からその要素を削除すれば良いのではないでしょうか? あれ?なんか変な事言ってる?(汗 _________________ かるあ のメモ と スニペット | ||||
|
投稿日時: 2007-04-04 12:02
かるあさん、早速のご回答有難うございます。 それは、チェックボックスがチェックされるたびにページを再読み込みする イメージでよろしいのでしょうか? ボタン押下時とか、ページ遷移時とかのタイミングで 一気に処理しようとするからいけないんですかね・・・。 | ||||
|
投稿日時: 2007-04-04 14:07
すみません、私の勘違いでした。
ページ遷移時や、登録ボタン押下時に、チェックを外した会員の 会員番号が退避用変数に存在すれば削除するようにすれば大丈夫でした。 大変失礼しました。 かるあさん、有難うございました。 | ||||
|
投稿日時: 2007-04-04 15:31
既に解決されたようですが、気になったことがあります。
会員番号の配列にチェックされた会員番号を退避しているということは、 ページ表示時にGridViewの項目の数だけループして、 チェックボックスに値をセットしているということでしょうか? それよりも、GridViewにバインドしているデータソースにCheckBox用の項目を用意して、 TemplateField内で、
のように、Checkedプロパティにバインドしてやった方が、 余分な処理がいらなくなるので良いように思います。 また、「★」ラベルの表示、非表示を行うには「どっとねっとふぁんblog」の http://dotnetfan.org/blogs/dotnetfanblog/articles/692.aspx のエントリで似たようなことをやっているようですので、 参考にしてみてはいかがでしょうか。 |
1