- - PR -
DataGridへのラジオボタンの設置について
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-08-03 08:31
サーバ側で実行されるコードにて、 RadioButton.Attributes.Add("name", name) という方法もあったような。。。 | ||||||||
|
投稿日時: 2004-08-03 09:42
Mickyでございます。
いつもお世話になっております。 えっと、自分の場合はDataGridを使用するときは 動的に生成して使うのですが、この問題は同様に 発生しました。 調べた所「サポート技術情報 - 316495」と言うのが MSDNにあって、「対処法のない不具合」という 認識だったんですよ(^^; 悩んだ挙句、ほやさんが紹介されているページと同様に PostBackされた後に自前でラジオボタンの制御を する様にしました。 Name属性を設定しても、.Netが自動で作成するName属性の方が 有効になってしまうようでした。 PsotBackを使用する方法はネットワーク環境のよくない所でも 使用する場合はViewState等のレスポンス対策にちょっと 工夫が必要かもしれません。 | ||||||||
|
投稿日時: 2004-08-03 10:32
NAL-6295です。
安直な方法ですが・・・ RadioButtonを継承したカスタムコントロールRadioButtonExを作成して、 UniqueIDをオーバライドして、 GroupNameが設定されていない時は、MyBase.UniqueIDを返して、 GroupNameが設定されている時は、GroupNameを返すようにすると、 うまくいきます。
[ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-08-03 10:33 ] [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-08-03 10:36 ] | ||||||||
|
投稿日時: 2004-08-03 11:25
Mickyでございます。
NAL-6295さんこんにちは! いつもお世話になっております。
これだと、GroupNameを設定した際にIDが同じになってしまい、 PostBack時の動作でチェックされたラジオボタンの情報を 取得できないような気がしているのですが… なにか見落としがあるのでしょうか? | ||||||||
|
投稿日時: 2004-08-03 12:04
一応、 UniqueIDプロパティ →クライアントサイドではName ClientIDプロパティ →クライアントサイドではID ということで、大丈夫だと思います。 #と思っていたのですが、ポストバック後の動作がうまくいかないですね。 #すいません。 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-08-03 12:15 ] | ||||||||
|
投稿日時: 2004-08-03 18:15
Mickyでございます。
とんでもございませぬ。 RadioButtonを継承させていじってみると言うアイディアは 考えも付かなかったので、最初読んだときは、 すげぇ==!と思ったんですよ。 で、それをヒントにこねくり回してみました。(^^; 基本的に、最初に提示した技術情報より、 「name属性を一意に設定しないと、コントロールの識別ができない」 と言う仕様と 「グループ化するにはname属性を同じにしなければならない」 と言う矛盾のもとに発生する不具合の様でやはり単純な解決策は 見当たらないと言う所まで辿り着きました。 そこで考えたのが… ・RadioButtonを継承して、RadioButtonExを作成する ・Renderメソッドをオーバーライドして id属性 = ClientID name属性 = GroupName valu属性 = UniqueID とします。 これで、クライアントでの排他制御は出来るようになると思います。 次に、PostBack時の処理ですがこのままでは、name属性が全部同じなので チェックされているRadioボタンが特定できません。 しかし、Request.Formプロパティを参照すると、設定したGroupNameより 選択されたRadioButtonのvalue属性が取得できます。 表示されているRadioButtonを順次参照して、value属性の値と UniqueIDプロパティを比較して同じものがチェックされている RadioButtonであると判断できます。 Checkedプロパティを直接参照できる根本的な解決にはなりませんが、 動作的にはOKだと思います。 しかし、あくまで局所的な対処方法ですので、 「name属性によるコントロールの特定が出来ない」と言う事が どこかに影響するかもしれません。 それは一応御了承の上、参考になれば…と思います。 又、なにか問題があるようでしたら御指摘いただけると ありがたいと思っております。 [ メッセージ編集済み 編集者: Micky 編集日時 2004-08-03 18:17 ] | ||||||||
|
投稿日時: 2004-11-21 02:28
NAL-6295です。
今日まで、すっかり忘れていたのですが今Mickyさんの案をヒントに 試しにコントロールを継承して下のようなコードを書いたらポストバック時も、 正しくCheckedプロパティを拾えましたので、一応参考までに・・・ #落とし穴があったら教えてください。 #こういう時にはうまくいかなかったとか・・・ ここから修正 codeにデザイン時の制限があったため、修正したサンプルを掲載した自分のブログのURLを貼っておきます。 http://d.hatena.ne.jp/NAL-6295/20051023/p2 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-11-21 02:38 ] [ メッセージ編集済み 編集者: NAL-6295 編集日時 2005-10-23 16:32 ] |
«前のページへ
1|2|3