3

出现以下编译错误:

解析器错误消息:“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 >

请帮我解决一下这个。提前谢谢

4

5 回答 5

3

不幸的是 ListItem 对象没有任何子控件。您可以编写自己的控件做类似的事情。基本上你只需要写一个带有子项的<ul>标签。<li/>

于 2010-09-16T21:23:54.317 回答
1

您可以使用文字控件创建它并将控件添加到面板或占位符。

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)
于 2011-02-18T21:25:27.580 回答
1

ListItem 内不能有服务器控件。您可以在 RadioButtonList 旁边有一个文本控件并伪造它,或者您可以编写自己的控件。

于 2010-09-16T21:27:54.403 回答
0

您不能在 a 中包含 HTML ListItem,仅此而已。您必须使用单独的单选按钮制作您的东西。

于 2010-09-16T21:23:04.113 回答
0

一种解决方法是将 runat="server" 关闭输入控件。您可以在其中拥有客户端控件(尽管解析器可能不建议这样做)。使用 jQuery 捕获输入控件的 keyup 并将文本框中的值存储在服务器隐藏字段中。

<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);
});
于 2017-11-28T00:07:43.593 回答