2010-09-16 17 views
2

L'erreur de compilation suivante se produit:Comment autoriser le contrôle html dans un listitem?

Message d'erreur de l'analyseur: La propriété 'Text' de 'asp: ListItem' n'autorise pas les objets enfants.

Erreur Source:

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> 

Quand mon code d'origine est comme ceci:

< 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 > 

S'il vous plaît aidez-moi à ce sujet. thx à l'avance

Répondre

2

Vous pouvez créer ceci en utilisant le contrôle littéral et en ajoutant les contrôles à un panneau ou à un espace réservé.

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) 
0

Vous ne pouvez pas avoir le HTML dans un ListItem, et c'est tout. Vous devrez faire votre chose avec des radiobuttons séparés.

2

Malheureusement, un objet ListItem n'a aucun contrôle enfant. Vous pourriez écrire votre propre contrôle en faisant quelque chose de similaire. Fondamentalement, il suffit d'écrire une balise <ul> avec des sous-éléments <li/>.

+1

Comme j'utilise asp.net C#, pouvez-vous relier votre solution avec le code asp.net? Un exemple sera utile. THX –

1

Vous ne pouvez pas avoir de contrôle serveur dans un ListItem. Vous pourriez avoir un contrôle de texte à côté de RadioButtonList et le truquer, ou vous pourriez écrire votre propre contrôle.

0

Un travail autour de prendre le runat = "server" hors du contrôle d'entrée. Vous pouvez avoir des contrôles côté client là-dedans (bien que l'analyseur puisse suggérer non). Capturez le keyup du contrôle d'entrée avec jQuery et stockez la valeur de la zone de texte dans un champ caché du serveur.

<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); 
});