2010-09-23 18 views
9

Ich möchte ein benutzerdefiniertes Attribut zu einem asp.net RadioButton namens Key, die ich clientseitig für eine Ajax-Anfrage verwenden.Hinzufügen von benutzerdefinierten Attributen zu asp.net.NET RadioButton Steuerelement

Was ich finde, ist, dass meine aspx Markup, das ist die folgende:

<asp:RadioButton ID="rdoPost" GroupName=PreferredContactMethod" value="Post" onclick="DoStuff(this)" runat="server" /> 

in der Seite als

gerendert wird
<span Key="ContactMethod"> 
    <input id="rdoPost" type="radio" name="PreferredContactMethod"" value="Post" onclick="DoStuff(this);" /> 
</span> 

während ich erwartet hatte (und hoffte) zu erhalten die folgenden

Ich habe das gleiche mit einem asp TextBox-Steuerelement versucht und es funktioniert genau so, wie ich erfahren würde ct einfach das Key="myKey" Attribut zum <input type="text"/> Element hinzufügen.

Gibt es eine Möglichkeit, dies mit dem Standard-RadioButton-Steuerelement zu umgehen, oder muss ich von dem Standard erben, um das gewünschte Markup zu erreichen?

Auch ... (Entschuldigung, um zwei Fragen zur gleichen Zeit zu stellen), ist Hinzufügen von Nicht-Standard-Attributen zu HTML Markup eine schlechte Idee sowieso? Derzeit verwende ich diese Attribute in JavaScript in folgenden Weise:

var key = rdoPost.Key; 

Antwort

17

ich von der Frage/Antwort gefunden habe unten, dass der einfachste Weg, dies zu tun, über die Code-Behind ist mit der InputAttributes Eigenschaft wie folgt :

rdoPost.InputAttributes.Add("class", "myCheckBoxClass"); 

Why does ASP.Net RadioButton and CheckBox render inside a Span?

+1

Ja, das ist hilfreich für RadioButton-, aber nicht Radiobuttonlist. –

+0

Ich habe Webforms seit 10 Jahren codiert und gerade dieses Attribut gefunden. Beeindruckend. – mlhDev

Verwandte Themen