- - PR -
DataGridの複数のCheckBoxのコントロールについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-08-22 12:24
毎度お世話になります。
ASP.NET(VB.NET)で開発しております。 今回はDataGridにCheckBoxの列を2列にした場合、 行ごとに、1列目か2列目どちらかにしかチェックできないように にしたいのですが。。 (できれば、サーバで処理させたくないです) 列ごとに1つしかチェックできないようになる方法は HPであったのですが。。。 宜しくお願い致します。 | ||||
|
投稿日時: 2003-08-22 15:19
こんにちは、まゆりんと申します。
チェックボックスじゃなくて、ラジオボタンではダメなのでしょうか? どちらかに必ずチェックを付けなければならないのなら ラジオボタンの方が簡単に実現できると思いますよ。 対象となる2列をテンプレート列にして、 編集時にItemTemplateにラジオボタンを追加、 もう片方にも同じように追加してIDを同じにすれば可能です。 | ||||
|
投稿日時: 2003-08-27 08:46
せっかくアドバイスしていただいたのに、
遅れてすみません。 (夏休み&サーバの復旧で遅れました) 必ずチェックするわけではないので、 チェックボックスでないといけなと いけないんです。 現在では、サーバではDataGridのチェックボックスの内容を ループでぐるぐるみて、同じ行にチェックが複数されていたら エラーにするようにしてます。 やっぱりかっこ悪いのですね。。。。 | ||||
|
投稿日時: 2003-08-27 10:27
見た目はあまりよく無いかもしれませんが、
「チェックしない or Aだけをチェック or Bだけをチェック:3通り」 ということなので、ラジオボタンの列を3列にし、 デフォルトの選択状態を"未選択"と判別するようにしてはどうでしょうか? ### ユーザーから考えると選べてしまうのにエラー表示される。 ### というのは不快かもしれませんし。 ### 余計な意見でしたら申し訳ありません。 | ||||
|
投稿日時: 2003-08-27 13:37
こんなスクリプトは如何でしょうか?
チェックボックスのコントロールにonclickを付け加えてみました。 <asp:CheckBox id="CheckBox1" onclick="CustomCheck(this);" runat="server"> <script language="javascript"> <!-- function CustomCheck(checkedObj) { blnChecked = checkedObj.checked; objTR = checkedObj.parentElement.parentElement; for(i=0;i<objTR.children.length;i++) { objTD = objTR.children(i); for(j=0;j<objTD.children.length;j++){ if (objTD.children(j).tagName.toUpperCase() == "INPUT") { if (objTD.children(j).type.toUpperCase() == "CHECKBOX") { objTD.children(j).checked = false; } } } } checkedObj.checked = blnChecked; } // --> </script> [ メッセージ編集済み 編集者: ophiuchus 編集日時 2003-08-27 13:42 ] | ||||
|
投稿日時: 2003-08-27 16:05
Crimeさん&ophiuchusさん、どうもありがとうございます。
Crimeさんのおっしゃる通りでエラーとして表示するのは よろしくないので、ophiuchusさんのスクリプトを参考にしたいと 思います。 CheckBoxって「OnCheckedChanged」イベントではないですか? スクリプトは初心者の為、勉強してからまた聞きたいと思います。 そのときはよろしくお願いします。 (恥ずかしながら、childrenとか全く分からない状態なんです。) |
1