如何将属性添加到输入标签 asp.net 内的 RadioButtonList 项

Posted

技术标签:

【中文标题】如何将属性添加到输入标签 asp.net 内的 RadioButtonList 项【英文标题】:How to add attribute to RadioButtonList item inside the input tag asp.net 【发布时间】:2014-09-23 19:12:09 【问题描述】:

我有一个数据绑定的 asp.net RadioButtonList。呈现的列表项显然呈现为类型单选、标签和跨度的输入。

当我遍历每个 ListItem 并添加一个 onclick 属性时,它会根据需要将 onclick 属性添加到输入标记。但是当我添加一个自定义属性时,它会将其添加到周围的跨度中。如何在不通过自定义 ControlAdapter 更改 RadioButtonList 的呈现的情况下将其添加到输入标签?我正在使用网站(不是项目)和.net 2.0。提前致谢!

ASP.NET

For Each li As ListItem In Me.rbl.Items
   li.Attributes.Add("onclick", "myFunction();")
   li.Attributes.Add("myAttribute", "1")
Next

html

<table id="ctl00_ContentPlaceHolder1_rbl" border="0">
    <tr>
        <td><span myAttribute="1"><input id="ctl00_ContentPlaceHolder1_rbl_0" type="radio"
          name="ctl00$ContentPlaceHolder1$rbl" value="Choice1" onclick="myFunction();" />
         <label for="ctl00_ContentPlaceHolder1_rbl_0">Choice1</label></span></td>
    </tr>
</table>

【问题讨论】:

看看这个:***.com/questions/3777740/… 谢谢。我看过类似的讨论,但不幸的是,RadioButtonList 项没有 InputAttributes 属性,只有 Attributes 属性。 【参考方案1】:

你可以试试这样的:

Dim i As Integer = 0

For Each li As ListItem In Me.rbl.Items
   li.Attributes.Add("onclick", "myFunction();")
   ClientScript.RegisterExpandoAttribute(rbl.ClientID & "_" & i.ToString, "myAttribute", "1")
   i += 1
Next

属性在 HTML 中不可见,因为在上面添加的行将生成一个客户端脚本,类似于

var ctl00_ContentPlaceHolder1_rbl_0 = document.all ? document.all["ctl00_ContentPlaceHolder1_rbl_0"] : document.getElementById("ctl00_ContentPlaceHolder1_rbl_0");
ctl00_ContentPlaceHolder1_rbl_0.myAttribute = "1";
var ctl00_ContentPlaceHolder1_rbl_1 = document.all ? document.all["ctl00_ContentPlaceHolder1_rbl_1"] : document.getElementById("ctl00_ContentPlaceHolder1_rbl_1");
ctl00_ContentPlaceHolder1_rbl_1.myAttribute = "1";

但该属性将在客户端代码中分配和访问。

【讨论】:

这是一个非常酷的选项,而且看起来很有效。我最终选择了一个不同的选项,在我的 javascript 函数中检查父节点的该属性。谢谢!

以上是关于如何将属性添加到输入标签 asp.net 内的 RadioButtonList 项的主要内容,如果未能解决你的问题,请参考以下文章

使用设计器 ASP.NET C# 将事件附加到占位符内的控件

如何将 ID 属性添加到 asp.net MVC 链接元素

如何将媒体属性添加到 ASP.NET MVC4 样式包

将 jquery 验证插件添加到 asp.net 4.5

Asp.Net 将HTML中通过dom-to-image.js标签div内的内容转化为图片保存到本地

将标签添加到 R 中的分类点边界