Как разрешить управление html внутри элемента списка?

Возникает следующая ошибка компиляции:

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

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

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 >

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


person Masud Rahman    schedule 16.09.2010    source источник


Ответы (5)


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

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)
person theLaughlinCo    schedule 18.02.2011

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

person Joachim VR    schedule 16.09.2010
comment
Поскольку я использую asp.net С#, можете ли вы связать свое решение с кодом asp.net? Пример будет полезен. спасибо - person Masud Rahman; 17.09.2010

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

person skajfes    schedule 16.09.2010

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

person Matti Virkkunen    schedule 16.09.2010

Один из способов обхода — убрать runat="server" из элемента управления вводом. У вас могут быть элементы управления на стороне клиента (хотя синтаксический анализатор может не предлагать). Захватите keyup элемента управления вводом с помощью 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);
});
person Jo G    schedule 28.11.2017