2010-01-29 6 views
1

У меня есть радиотекст html внутри репитера. Я м столкнулись с двумя проблемамиПроблема с html радио-кнопкой внутри ретранслятора

  1. , когда я м привязки значения из кода позади (используя DataTable в коде позади) он бросает сервер ошибки тег не найден.

  2. как получить выбранное значение в коде позади

Мой код до сих пор это.

asp:Repeater runat="server" ID="rptr1"> 
<HeaderTemplate></HeaderTemplate> 
<ItemTemplate> 
    <tr> <td> 
     <span><input type="radio" runat="server" name="acd" class="radio" id="radio1" value='<%# DataBinder.Eval(Container.DataItem, "valuinfm")%>'/></td><td> <label for="radio"><%# DataBinder.Eval(Container.DataItem, "txtinfm")%></label></span></td> 
       <br /> 
    </tr> 
</ItemTemplate> 
<FooterTemplate></FooterTemplate> 
</asp:Repeater> 

кто-то имея ни малейшего представления, где я получаю неправильно. Я использовал этот подход, потому что была ошибка в использовании переключателя asp.net с ретранслятором. Я не хочу использовать javascript.

В основном я хочу, чтобы перенаправить на другую страницу, имеющей строку запроса, которая «значение» кнопка радио

Отредактированы: // я исправил ее отдельные внешние кавычки теперь нет никакой ошибки (спасибо Брайана) Значения в кнопке переключателя различны, но все же я могу щелкнуть оба, а также, как я могу определить, какая радиокнопка выбрана:

+0

Я предполагаю, что я м в состоянии выбрать как переключатель, потому что это производит другое имя для переключателей, которые генерируются и обрабатываются как разные ... но если есть какой-либо способ, я могу избежать этого –

ответ

0

Проблема заключается в том, что атрибут name сгенерированных переключателей получает присоединенный к нему UniqueId. Это .NET, пытающийся быть полезным, но в этом случае он вызывает проблемы, поскольку браузеры группируют радиокнопки, где атрибут имени тот же. Одним из возможных решений является создание вашей собственной кнопки радио веб-управления, который не переопределяет имя атрибута, как описано в этой статье:

http://www.codeproject.com/KB/webforms/How_group_RButtons.aspx

+0

Спасибо за правдивую гадость, я знаю об этом, но Я думал, что эта проблема связана только с переключателем asp.net, если я использую html-переключатель, это будет так. Поэтому единственной альтернативой этому является создание настраиваемого переключателя. Я просто неохотно делал эту мысль, может быть, другой подход к этому. –

+0

Нет - после того, как вы положили runat = "server" на html-переключатель .net также берет на себя и изменяет атрибуты id и name. Просмотреть источник на сгенерированной странице, чтобы увидеть ... – vitch

0

Ну, для начала это будет генерировать несколько радиокнопок с одинаковым идентификатором в браузере, который является не-нет. Это также может быть частью вашей проблемы, но это поможет увидеть код, который на самом деле бросает ошибку во время выполнения.

+0

Я знаю, что с такой же ценностью он создаст проблему, но я получу свою информацию из кода позади. valueinfm всегда уникально –

+0

Действительно? Я думал, что .net добавил кучу вещей, относящихся к пути элемента управления, к началу идентификатора, когда элемент управления был runat = «server» (в большинстве случаев это было неприятно, но чтобы избежать того, что вы описали) – vitch

1

Почему бы не использовать кнопку сервер радио, как в:

<asp:RadioButton id="rad1" runat="server" GroupName="acd" ... 
    Checked='<%# Eval("valuinfm") %>' /> 

Примечание одиночные кавычки вокруг значения свойства тоже, когда внутренние кавычки двойные, вы должны сингл снаружи.

+0

Спасибо Брайан это помогло, но я не использовал серверный контроль из-за известной ошибки с помощью переключателей asp и ретранслятора, как упоминалось в microsoft. http://support.microsoft.com/kb/316495 –

Смежные вопросы