質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

1083閲覧

Asp.net GridViewのあるCheckBoxがチェックされたら他のCheckBoxをChecked=falseにしたい

toratsu_gumi

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2022/09/16 03:08

前提

Asp.net初心者です
.NET Framework 4 VS2017 C# でWebアプリケーションを作成しています。

実現したいこと

・Xmlを読み込んだDataTableがバインドされたGridViewにチェックボックスを配置し、一つの行のチェックボックスだけ
選択できるようにしたい。 GridViewの行数は可変です。
例:特定の行のチェックボックスを選択状態→ほかの行を全て未選択状態に変更

発生している問題・エラーメッセージ

GridView - CheckBoxFieldのイベントの取得方法が分からず先に進めないでいます

該当のソースコード

asp

1<asp:GridView ID="GridViewColor" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridViewColor_RowDataBound" > 2 <Columns> 3 <asp:CheckBoxField HeaderText="選択" DataField="check"> 4 </asp:CheckBoxField> 5 </asp:BoundField> 6 <asp:BoundField HeaderText="カラー" DataField="color_name" > 7 </asp:BoundField> 8 </asp:BoundField> 9 <asp:BoundField HeaderText="備考" DataField="color_attribute" /> 10 </Columns> 11 </asp:GridView>

c#

1dsColor.ColorListDataTable dtColorList = new dsColor.ColorListDataTable(); 2 dsColor.ColorListRow colorListRow; 3 foreach (XElement color in colorList) 4 { 5 // バインド用にテーブル生成 6 colorListRow.check = false; // 選択状態 7 colorListRow = dtColorList.NewColorListRow(); 8 colorListRow.color_name = color.Element("color_name").Value; // カラー名称 9 colorListRow.color_attribute = color.Element("color_attribute").Value; // 備考 10 dtColorList.Rows.Add(colorListRow); 11 } 12 13 this.GridViewColor.DataSource = dtColorList; 14 this.GridViewColor.DataBind();

試したこと

CheckBox - CheckChangedイベントを追加してみたりしましたがうまくいきませんでした
CommandFieldを追加すればイベントが取得でき、やりたいことが実現できそうですが、
要件上見た目をチェックボックスから変更することができません。

よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

.NET Framework 4 VS2017 C#

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

・Xmlを読み込んだDataTableがバインドされたGridViewにチェックボックスを配置し、一つの行のチェックボックスだけ選択できるようにしたい。

CheckBox ではありませんが RadioButton の例ならあります ↓

GridView 内の RadioButton
http://surferonwww.info/BlogEngine/post/2013/08/30/radiobutton-in-girdview.aspx

「一つの行のチェックボックスだけ選択」ということなら、CheckBox より RadioButton の方がユーザーエクスペリエンス的に良いと思います。

上の記事の下の方に書いた「2013/8/31 追記」のように、クライアントスクリプト (JavaScript / jQuery) で、あるラジオボタンがチェックされたら他のラジオボタンのチェックを外すようにするのがお勧めです。

CheckBox でも同様にできるはずです。

投稿2022/09/16 03:36

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toratsu_gumi

2022/09/16 04:36

早々にご回答いただきありがとうございます 「2013/8/31 追記」のスクリプトで無事実現することができました 同一ページに複数GridViewがあり、やはりチェックボックスの見た目で統一したいとの要望でしたので input:radio → input:checkboxに変更することで想定通りの動作となりました 昨日からハマってましたのでとても助かりました ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問