- PR -

DataGridのCheckBoxにコード内でチェックをつけたい

1
投稿者投稿内容
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-04-17 18:53
お世話さまです。
まだ、DataGridやってます。^^;

今回はDataGridのページングに伴う処理で、ユーザがチェックをつけた
ページの当該行を改ページした後に戻ってきたときにチェック済みに
するコーディングで困っています。

ユーザがチェックをしているかの判断はコーディングできたのですが、
それを行に戻すやり方が解りません。

ちなみに、チェック有無の判定は下記のコードで実現しています。

Dim myDataGridItem As DataGridItem
Dim chkSelected As System.Web.UI.WebControls.CheckBox

Pos = 0
For Each myDataGridItem In DataGrid.Items
  chkSelected = myDataGridItem.FindControl("CheckBox1")
  If chkSelected.Checked Then
  …
  Else
  …
  End If
Next

chkSelected.Check = True
myDataGridItem.FindControl("CheckBox1") = chkSelected

ってのはダメなんですよね?^^;

myDataGridItem.Cells(0)…も考えてみたんですが出来そうもないです。

もしかしてViewStateか何かをつかって簡単に実現できるのでしょうか?

上記の動作をASP.VB内で実装するためのコーディング
をご教示願いたいです。
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-04-17 18:55
事故レスです。^^;

上記コード内の

Pos = 0

は無視して下さい。
いし
常連さん
会議室デビュー日: 2003/04/15
投稿数: 27
投稿日時: 2003-04-17 20:12
安直回答(^^;のいしです。

値を取得したのと同じようにすればいいのではないでしょうか?

コード:

For Each myDataGridItem In DataGrid.Items 
  chkSelected = myDataGridItem.FindControl("CheckBox1") 
  chkSelected.Checked = {保存した値}
Next


例によってまったく検証していないので、違っていたらすみません。
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-04-17 20:24
===>いし様

早速のレス、ありがとうございます。

ソレだとワーク的に使っている変数であるchkSelectedの値を
操作しているに過ぎないのではないでしょうか?

myDataGridItemのチェックボックスコントロールに値(False/true)を
与えることにはならないような気が直感的にします。^^;
いし
常連さん
会議室デビュー日: 2003/04/15
投稿数: 27
投稿日時: 2003-04-17 21:38
cmdSelectedは変数というより、そのコントロールへの参照の
はずですから大丈夫じゃないですか?
いし
常連さん
会議室デビュー日: 2003/04/15
投稿数: 27
投稿日時: 2003-04-17 21:39
変数名間違えました(^^;。chkSelectedですね。
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-04-17 21:40
===>いし様

お世話さまです。

値を代入してるダケなワケではないんでスカ!?

明日、早速試してみます。

ありがとうございました。
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-04-18 12:03
===>いし様

こんにちは!

昨日ご教示頂いた方法を試しましたところ、実現できました!

ありがとうございました。
助かりましたです。
1

スキルアップ/キャリアアップ(JOB@IT)