- - PR -
DataGrid貼り付けたRadioボタンのグループ化
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-10-04 02:14
お世話になります。
DataGridにテンプレート列を追加して、その列にRadioボタンを追加します。 そして、列に追加したRadioボタンをグループ化しようとして、GroupNameプロパティを変更しても、うまくグループ化されません。 生成されるHTMLを見てみると、RadioボタンのName属性にセルの番号(?)が吹かされてしまうことが原因だとわかりました。 DataGridにRadioボタン列を追加し、それらをグループ化する方法をお知らせください。 以上、よろしくお願いいたします。 _________________ GUNNM でした。 | ||||
|
投稿日時: 2002-10-04 10:10
過去に同様の質問があったような気がしますが
本来このような使い方は、RadioButtonListを使用すべきなのでは ないでしょうか。 どうしても、DataGridにRadioButtonを表示させてグループ化したい ときは、RadioButtonのOnCheckedChangedイベントですべてのRadioButton をリセットしてからカレントのRadioButtonをチェックします。
RadioButtonにAutoPostBack="True"を追加する必要があるため、チェックする度に PostBackされます。 P.S. よろしければ、RadioButtonListを使用できない理由をお聞かせください。 Happy Programming! Akio Kasai | ||||
|
投稿日時: 2002-10-09 08:44
レスポンスを入れていただきありがとうございます。
>よろしければ、RadioButtonListを使用できない理由をお聞かせください。 DataGridの各行にRadioButtonを出したいのですが、RadioButtonListを使うと、1つのセルにいくつものRadioButtonが入ってしまったため、普通のRadioButtonを使うことにしました。 また、選択ボタン列を用いないで、RadioButtonにしたのは、できるだけPostBackの回数を減らしたいと考えているからです。 選択問題だけの試験用紙のようなWebページを作っています。問題の数も結構あるので、回答を選択肢から選ぶたびにPostBackがかかるのはつらいと考えています。 ご教授のほどよろしくお願いいたします。 | ||||
|
投稿日時: 2002-10-10 10:49
http://support.microsoft.com/default.aspx?scid=kb;ja;JP316495
本来はGroupName属性によって解決されるべきだがバグってる、というマイクロソフトの見解のようですね。 さすがに毎回PostBackするのが嫌だったので、サーバコントロールでなく、直接ラジオボタンのHTMLを埋め込んでいます。 <Columns> <asp:TemplateColumn> <ItemTemplate> <input name="ShainCD" type="radio" value="<%# DataBinder.Eval(Container.DataItem, "SHAIN_CD") %>" /> </ItemTemplate> </asp:TemplateColumn> .... </Columns> サーバ側では string strShainCd = Request.Form["ShainCD"]; のようにしてポストデータを読んでいます。 あまり.Net的ではないですが、パフォーマンス、操作感を優先させることにしました。 ご参考になれば幸いです。 | ||||
|
投稿日時: 2002-10-10 13:21
ありがとうございます!!
>さすがに毎回PostBackするのが嫌だったので、サーバコントロールでなく、直接ラジオボタンのHTMLを埋め込んでいます。 ご教授いただいた方法にて何とかできそうです。 今後とも、何かありましたら、お願いいたします。 | ||||
|
投稿日時: 2004-12-01 23:05
asp.net(c#)でWeb開発を行っております。
DataGridでラジオボタンを作成し、グループ化を行いたいのですが、 過去ログにあった、下記のHTMLを埋め込んだのですが、 「value="<%# DataBinder.Eval(Container.DataItem, "SHAIN_CD") %>" />」 の"SHAIN_CD"で属性'SHAIN_CD'が見つかりませんとなります。 HTMLについて調べてみたのですが理解することができませんでした。 何か足りないと思うのですが、どなたかご指導お願いします <><><><><>過去ログ引用文<><><><><> さすがに毎回PostBackするのが嫌だったので、サーバコントロールでなく、直接ラジオボタンのHTMLを埋め込んでいます。 <Columns> <asp:TemplateColumn> <ItemTemplate> <input name="ShainCD" type="radio" value="<%# DataBinder.Eval(Container.DataItem, "SHAIN_CD") %>" /> </ItemTemplate> </asp:TemplateColumn> .... </Columns> サーバ側では string strShainCd = Request.Form["ShainCD"]; のようにしてポストデータを読んでいます。 | ||||
|
投稿日時: 2004-12-01 23:23
NAL-6295です。
過去ログに、GroupNameにおける不具合を回避するためのカスタムコントロールの作り方を記述してあります。 過去ログを漁るのが面倒な場合は、僕のblog(下のホームページアイコンで行ける)の.NET Tipsカテゴリで言及しています。 もし良かったら参考にされてください。 *編集 カテゴリが変更された。 元々のURLのサンプルにはデザイン時にエラーが発生するという制限があったため、 下記URLで、その制限を回避。(2005/10/23) http://d.hatena.ne.jp/NAL-6295/20051023/p2 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2005-10-20 00:03 ] [ メッセージ編集済み 編集者: NAL-6295 編集日時 2005-10-23 16:40 ] |
1