Как разрешить контроль HTML внутри listitem? - PullRequest
3 голосов
/ 17 сентября 2010

Произошла следующая ошибка компиляции:

Сообщение об ошибке синтаксического анализатора. Свойство «asp: ListItem» Text не допускает дочерние объекты.

Ошибка источника:

Line 468: </asp:ListItem>
Line 469: <asp:ListItem Value="3">
Line 470: Search only continuing stories with at least&nbsp; <input runat="server" id="episodetb" Value="0" style="width:50px" />
Line 471: episodes
Line 472: </asp:ListItem>

Когда мой оригинальный код такой:

< asp:RadioButtonList ID="ContStoryRadioButtonList" DataTextFormatString=" {0}" CellPadding="2" runat="server">
<asp:ListItem Value="0">
Search singular and continuing stories
</asp:ListItem>
<asp:ListItem Value="1">
Search only singular stories
</asp:ListItem>
<asp:ListItem Value="2">
Search only continuing stories
</asp:ListItem>
<asp:ListItem Value="3">
Search only continuing stories with at least&nbsp; <input runat="server" id="episodetb" Value="0" style="width:50px" />
episodes
</asp:ListItem>
</asp:RadioButtonList >

Пожалуйста, помогите мне с этим. спасибо заранее

Ответы [ 5 ]

3 голосов
/ 17 сентября 2010

К сожалению, у объекта ListItem нет дочерних элементов управления.Вы можете написать свой собственный контроль, делая что-то подобное.По сути, вам просто нужно написать тег <ul> с подпунктами <li/>.

1 голос
/ 19 февраля 2011

Это можно создать с помощью буквального элемента управления и добавив элементы управления на панель или заполнитель.

VB

Dim list_startul as New Literal
list_startul.text = "<ul>"

Dim list_li as New Literal
lisstt_li.text = "<li><label>Hello!</label></li>"

Dim list_endul as New Literal
list_endul.text = "</ul>"

panel.controls.add(list_startul)
panel.controls.add(list_li)
panel.controls.add(list_endul)
1 голос
/ 17 сентября 2010

Вы не можете иметь серверный элемент управления внутри ListItem. Вы можете иметь текстовый элемент управления рядом с RadioButtonList и подделать его, или вы можете написать свой собственный элемент управления.

0 голосов
/ 28 ноября 2017

Обходной путь - убрать runat = "server" из элемента управления вводом. Там могут быть элементы управления на стороне клиента (хотя парсер может предложить нет). С помощью jQuery перехватите ключ ввода и сохраните значение из текстового поля в скрытом поле сервера.

<asp:RadioButtonList ID="Services" runat="server">
    <asp:ListItem Text="Option 1" Value="1">
        Enter data:  <input id="test" type="text"/>
    </asp:ListItem>
<%--(...more listitems)--%>
</asp:RadioButtonList>
<asp:HiddenField ID="NewValue" runat="server />

JQuery -

$('#test').keyup(function() {
    $('#<%=NewValue.ClientID%>').val(this.value);
});
0 голосов
/ 17 сентября 2010

Вы не можете иметь HTML в ListItem, и все. Вы должны будете сделать свою вещь из отдельных радиокнопок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...