向 asp.NET RadioButton 控件添加自定义属性

Posted

技术标签:

【中文标题】向 asp.NET RadioButton 控件添加自定义属性【英文标题】:Adding custom attributes to asp.NET RadioButton control 【发布时间】:2011-04-16 05:14:42 【问题描述】:

我想向名为Key 的asp.net RadioButton 添加一个自定义属性,我将其用于客户端的ajax 请求。

我发现我的 aspx 标记如下:

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

在页面中呈现为

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

而我期望(并希望)得到以下结果

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

我用 asp TextBox 控件尝试了同样的事情,它的工作原理完全符合我的预期,只需将Key="myKey" 属性添加到&lt;input type="text"/&gt; 元素。

有没有办法使用标准 RadioButton 控件来解决这个问题,还是我必须从标准控件继承才能实现我想要的标记?

另外...(很抱歉同时问两个问题),向 html 标记添加非标准属性是不是一个坏主意?目前我在 javascript 中通过以下方式使用这些属性:

var key = rdoPost.Key;

【问题讨论】:

【参考方案1】:

我从下面的问题/答案中发现,最简单的方法是使用 InputAttributes 属性通过代码隐藏,如下所示:

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

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

【讨论】:

是的,这对 RadioButton 有帮助,但对 RadioButtonList 没有帮助。 我已经编写网络表单 10 年了,现在才发现这个属性。哇。 这很有趣。我有一个用于文本输入的用户控件,根本不需要这样做,只需使用 Attribute 而不是 InputAttribute

以上是关于向 asp.NET RadioButton 控件添加自定义属性的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET C#中Radiobutton控件的疑问

asp.net(C#)怎样将listview中的radiobutton设置成互斥?

asp.net用button_click事件重置页面 使页面上选择过的checkbox和radiobutton控件清空呢

asp.net中repeater控件里使用一组radiobutton为啥设置了相同groupname还是一组按钮都能选中

ASP.NET RadioButton 与名称(组名)混淆

在使用Jquery+Ajax 往Table 中Td 添加入数据,