- PR -

DataGridの複数のCheckBoxのコントロールについて

1
投稿者投稿内容
みのる
大ベテラン
会議室デビュー日: 2003/07/03
投稿数: 100
投稿日時: 2003-08-22 12:24
毎度お世話になります。

ASP.NET(VB.NET)で開発しております。

今回はDataGridにCheckBoxの列を2列にした場合、
行ごとに、1列目か2列目どちらかにしかチェックできないように
にしたいのですが。。
(できれば、サーバで処理させたくないです)

列ごとに1つしかチェックできないようになる方法は
HPであったのですが。。。

宜しくお願い致します。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-08-22 15:19
こんにちは、まゆりんと申します。

引用:

みのるさんの書き込み (2003-08-22 12:24) より:

今回はDataGridにCheckBoxの列を2列にした場合、
行ごとに、1列目か2列目どちらかにしかチェックできないように
にしたいのですが。。
(できれば、サーバで処理させたくないです)




チェックボックスじゃなくて、ラジオボタンではダメなのでしょうか?
どちらかに必ずチェックを付けなければならないのなら
ラジオボタンの方が簡単に実現できると思いますよ。

対象となる2列をテンプレート列にして、
編集時にItemTemplateにラジオボタンを追加、
もう片方にも同じように追加してIDを同じにすれば可能です。
みのる
大ベテラン
会議室デビュー日: 2003/07/03
投稿数: 100
投稿日時: 2003-08-27 08:46
せっかくアドバイスしていただいたのに、
遅れてすみません。
(夏休み&サーバの復旧で遅れました)

必ずチェックするわけではないので、
チェックボックスでないといけなと
いけないんです。

現在では、サーバではDataGridのチェックボックスの内容を
ループでぐるぐるみて、同じ行にチェックが複数されていたら
エラーにするようにしてます。

やっぱりかっこ悪いのですね。。。。
Crime
常連さん
会議室デビュー日: 2002/08/26
投稿数: 34
お住まい・勤務地: Japan
投稿日時: 2003-08-27 10:27
見た目はあまりよく無いかもしれませんが、
「チェックしない or Aだけをチェック or Bだけをチェック:3通り」
ということなので、ラジオボタンの列を3列にし、
デフォルトの選択状態を"未選択"と判別するようにしてはどうでしょうか?

### ユーザーから考えると選べてしまうのにエラー表示される。
### というのは不快かもしれませんし。

### 余計な意見でしたら申し訳ありません。
ophiuchus
会議室デビュー日: 2003/08/27
投稿数: 11
投稿日時: 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/07/03
投稿数: 100
投稿日時: 2003-08-27 16:05
Crimeさん&ophiuchusさん、どうもありがとうございます。

Crimeさんのおっしゃる通りでエラーとして表示するのは
よろしくないので、ophiuchusさんのスクリプトを参考にしたいと
思います。

CheckBoxって「OnCheckedChanged」イベントではないですか?
スクリプトは初心者の為、勉強してからまた聞きたいと思います。
そのときはよろしくお願いします。
(恥ずかしながら、childrenとか全く分からない状態なんです。)
1

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