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