Я получил шаблонный элемент управления (ретранслятор), в котором перечислены некоторые текстовые и другие разметки. У каждого элемента есть связанная с ним радиомаяка, позволяющая пользователю выбирать ОДИН из элементов, созданных ретранслятором.
Повторитель записывает радиокассету, устанавливая свой идентификатор и имя, сгенерированные стандартным соглашением об именах по умолчанию для ASP.NET, которое делает каждую радиообъектуру полной "группой". Это означает, что все радиообъекты независимы друг от друга, что, к сожалению, означает, что я могу одновременно выбрать все радиообъективы. У радиообъектива есть умный атрибут "имя группы", используемый для установки общего имени, поэтому они группируются вместе и, следовательно, должны зависеть (поэтому я могу выбирать только по одному). Проблема в том, что это не работает - ретранслятор гарантирует, что идентификатор и, следовательно, имя (которое контролирует группировку) отличаются.
Поскольку я использую ретранслятор (возможно, это список или любой другой шаблонный контроль привязки данных), я не могу использовать RadioButtonList. Так где же это оставляет меня?
Я знаю, что раньше у меня была эта проблема, и решил. Я знаю, что почти у каждого программиста ASP.NET, должно быть, тоже было это, поэтому почему я не могу найти Google и найти надежное решение проблемы? Я наткнулся на решения для обеспечения группировки JavaScript (уродливые!) Или даже для обработки радиообъектов как не-серверных элементов управления, заставляя меня делать Request.Form[name]
для чтения состояния. Я также попытался поэкспериментировать с переопределением атрибута name в событии PreRender
- к сожалению, страница владельца и мастер-страница снова переопределяют это имя, чтобы отразить полное имя/имя, поэтому я получаю тот же неправильный результат.
Если у вас нет лучшего решения, чем то, что я опубликовал, вы по-прежнему очень рады опубликовать свои мысли - по крайней мере, я буду знать, что мой друг "Джек" прав о том, как иногда перепутался ASP.NET;)