テキストやその他のマークアップを一覧表示するテンプレートコントロール(リピーター)を入手しました。各アイテムにはラジオボタンが関連付けられており、ユーザーはリピーターによって作成されたアイテムの1つを選択できます。
リピーターは、デフォルトのASP.NET命名規則で生成されたIDと名前を設定するラジオボタンを書き込み、各ラジオボタンを完全な「グループ」にします。これは、すべてのラジオボタンが互いに独立していることを意味します。これも残念ながら、すべてのラジオボタンを同時に選択できることを意味します。ラジオボタンには、共通名を設定するために使用される巧妙な属性「groupname」があるため、それらはグループ化され、依存する必要があります(したがって、一度に1つしか選択できません)。問題は-これは機能しません-リピーターはIDと(グループ化を制御する)名前が異なることを確認します。
リピーター(リストビューまたはその他のテンプレート化されたデータバインドコントロールである可能性があります)を使用しているため、RadioButtonListを使用できません。それで、それは私をどこに残しますか?
私は以前にこの問題を抱えていて、それを解決したことを知っています。ほぼすべてのASP.NETプログラマーがそれを持っていたに違いないことを私は知っていますが、なぜ私はグーグルで問題の確実な解決策を見つけることができないのですか?JavaScriptによるグループ化を強制する(醜い!)、またはラジオボタンを非サーバーコントロールとして処理するソリューションに出くわしRequest.Form[name]
、ステータスを読み取るように強制しました。また、イベントのname属性をオーバーライドしてみました。PreRender
残念ながら、所有ページとマスターページは、完全なID /名を反映するためにこの名前を再度オーバーライドするため、同じ間違った結果になります。
私が投稿したものよりも優れた解決策がない場合でも、あなたの考えを投稿することは大歓迎です-少なくとも、私の友人の「ジャック」は、ASP.NETがめちゃくちゃになっていることがあることについて正しいことを知っています;)