前提・実現したいこと
######ASP.NETのCheckBoxListについてです。
CheckBoxListを用い、血液型によってユーザーを検索するようなプログラムが書けないか試しています。そのことで2点質問があります。
プログラムの要件は以下になります。
①チェックボックスを5つ作る(「不明」、「A型」、「B型」、「O型」「AB型」のボックス)
②「不明」ボックスにチェックが入っているとき、他ボックスをグレーアウトで非活性にする。
③「不明」ボックスのチェックを外した時、他のボックスを活性にする。
④「A型」、「B型」、「O型」、「AB型」のボックスは複数選択できるようにする。
⑤チェックボックスはSQLServerのDBから取得する。
######前提的な質問になります。
要件⑤を満たすためにサーバーコントロールのSqlDataSourceを使い、DBに登録してある血液型のチェックボックスが作られるようにしたのですが、このデータバインドしたチェックボックスは個々に挙動を設定できるのでしょうか?
現在、aspx.csにチェックボックスのボックスに関するコードが生成されていなかったので、もしかしたらできないのでは、と思いました。
個々の挙動は要件②のために必要なので、データバインドで自動的に作られるボックスの一つ目のボックスをボックス1として指定することは可能でしょうか?ということになります。
自動生成されるチェックボックスなので、aspx.cs側にソースがなく、載せることが出来ません。
何卒宜しくお願い致します。
#####質問の追記・補足
まず今回のプログラムはSQL serverのDBありきになっています。
DBには以下のテーブルがあります。
【table】
ex_master_item
テーブルには以下の列名とレコードがあります。
【列名】
:list_id、item_order、item_text、item_value
【レコード】
:0、0、'不明'、0
:1、1、'A型'、1
:1、1、'B型'、2
:1、1、'O型'、3
:1、1、'AB型'、4
このデータをSqlDataSourceとリソースファイル(SELECT文で上記レコードを指定)を使って汲み上げています。
【aspx】
<asp:SqlDataSource ID="BloodType" runat="server" SelectCommand="<%$ Resources:sdsBloodType_SelectCommand %>" OnSelecting="sdsBloodType_Selecting" CancelSelectOnNullParameter="false" />
<asp:CheckBoxList ID="chlBloodType" runat="server" DataSourceID="BloodType" DataTextField="item_text" DataValueField="item_value" ondatabound="chlBloodBind_DataBound" RepeatDirection="Horizontal" />
この結果、「不明」~「AB型」までのチェックボックスが自動生成され、DBに例えば「0、0、'Rh- O型'、0」などを加えたらそれも追加されていきます。
今回、その自動生成されるチェックボックスたちにIDを割り振り、挙動をプログラミングしたいのです。
自動生成されるためか、aspc.cs側にチェックボックスのソースがないので、自動生成されるチェックボックスを順にID=1、2、3、4、5と割り振り、ID=1(これを「不明」ボックスとする)に他のチェックボックス非活性にするようなコードを書きたいです。
試したこと
GoogleやMicroSoft、Youtubeなどでもチェックボックスリストについて調べたのですが、データバインドで自動生成されるチェックボックスに、個々にボックスIDを振れるかについて書かれた記事が一つも見つかりませんでした。
もし、5つのチェックボックスを作ってしまった方がよい、や、「不明」チェックボックスだけ別に作って他4つはDBから取得の形が良い、などアドバイスございましたらよろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
質問者:ASP.Net、C#ともに触れて1カ月の超初心者。
使用環境:Visual Studio2017、.NET Framework4.6.2以降
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー