- - PR -
CheckBoxのチェックが反映されない?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-10-11 14:51
いつもお世話になっております。
VBでWebアプリを作成しております。 先日色々とご質問させていただき、以下の部分については出来るようになりました。 1.DataGridにテンプレート列を設けてチェックボックスを配置しました。 2.ボタンを押すとマウスでチェックONされた行だけ処理されます。 3.さらにソート機能をつけて、ソートしてもチェックONが解除されない ようにしました。 ユーザの要望で「ずべてチェックON」と「すべてチェックOFF」のボタンを 付けることになりました。 この機能は簡単に作ることができました。 しかし、この機能を実行した後にソートを行うと元の状態に戻ってしまいます。 マウスで個別にチェックしたところはソートしても問題ありません。 全てチェックONのロジックは以下の通りです。 ----------------------------------------------------- Private Sub btnON_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnON.Click Dim Row As DataGridItem Dim check As CheckBox For Each Row In DataGrid1.Items 'DataGridの行を順番に読む check = CType(Row.FindControl("CheckBox1"), CheckBox) check.Checked = True Next End Sub ----------------------------------------------------- マウスでクリックした時と、すべてチェックONした時の状態は 見た目には同じように見えるのですが、何か違いがあるようです。 チェックが保存されていないのでしょうか? どうぞよろしくお願い致します。 | ||||
|
投稿日時: 2005-10-11 15:23
"ソート機能"ってのが問題かもしれませんね。
具体的にはどんなことをやってます? | ||||
|
投稿日時: 2005-10-11 15:38
このスレッドのことかな? キャッシュに保存したDataSetにチェックボックスの情報をしまってますね。 全てチェックONしたらDataSetにも反映してあげないと。 | ||||
|
投稿日時: 2005-10-11 17:54
皆様、早々にありがとうございます。
参考にして試していたところ、実行した瞬間に間違えに気づき止めました。 そしたら以下のようなメッセージが表示されるようになり、 デバッグできなくなってしまいました。 ============================================================================ プロジェクトを実行しようとしているときにエラーが発生しました:Webサーバーで デバッグを開始できません。デバッガは既にアタッチされています。 ============================================================================ ちょっと強引に止めてしまったので、恐らくデバッガが壊れてしまったのでは ないかと思います。 Framworkを入れなおさないとダメなのでしょうか。。。 | ||||
|
投稿日時: 2005-10-11 18:41
OSを再起動してもダメですか?(^^;
| ||||
|
投稿日時: 2005-10-11 20:46
運がよければIISの再起動で元に戻りますよ。
ぼのぼのさんの言うとおり、 多分OSを再起動すれば直ると思います。 | ||||
|
投稿日時: 2005-10-12 11:02
ありがとうございます。
憂鬱な気持ちで出社しました。 パソコンを起動して、皆さんのメッセージをみて元気が出ました! 恐る恐るやってみたらデバッグできました!! 昨日、シャットダウン時に起動中のアプリが1つ残っていたので あれがそうだったんですねぇ。 これから続きをやって、また状況をご報告します♪ | ||||
|
投稿日時: 2005-10-13 15:18
お陰さまで、問題が解決いたしました!
ぼのぼの様の「DataSetにも反映して・・・」というヒントをもとに 考えてみました。 1.BindGrid()でソートの情報をSessionに保存 2.全てチェックONのロジックを以下のような記述に変更 --------------------------------------------------------- Private Sub btnON_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnON.Click Dim ds As New DataSet Dim oTable As New DataTable Dim oRow As DataRow Dim count As Integer Dim i As Integer Dim dv As New DataView ds = Cache("DS") oTable = ds.Tables(0) count = oTable.Rows.Count() For i = 0 To count - 1 oRow = oTable.Rows(i) oRow("CHECK_FLG") = True dv = ds.Tables(0).DefaultView dv.Sort = Session("strSORT") With DataGrid1 .DataSource = dv .DataBind() End With Next End Sub --------------------------------------------------------- 皆様、ありがとうございました☆ 今後ともよろしくお願いいたします。 |