考虑到这个标记(注意:id,name和for等属性在所有示例中被删除,因为它们的生成的id /名称是冗长的):
<asp:TextBox runat="server" data-foo="bar" />
在asp.net中呈现:
<input type="text" data-foo="bar" />
也就是说,asp.net保持数据不变。
复选框通常呈现如下:
<asp:CheckBox runat="server" Text="normal" />
呈现为:
<input type="checkBox" /> <label>normal</label>
<asp:CheckBox runat="server" Text="Custom attribute" data-foo="bar" />
它呈现为:
<span data-foo="bar"> <input type="checkBox" /> <label>Custom attribute</label> </span>
正如你所看到的,渲染的范围保持属性。如果您在代码后添加属性,也会发生这种情况。这不会发生任何其他HtmlControl,AFAIK。
有人知道为什么这个范围被渲染来保持属性?
解决方法
myCheckBox.InputAttributes.Add(...)
参考链接:
> http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkbox.inputattributes.aspx
> http://forums.asp.net/p/541142/541562.aspx
> http://msdn.microsoft.com/en-us/library/system.web.ui.attributecollection.add.aspx
更新
使用另外的父元素,因此您应用于复选框的属性可以影响输入和文本。我想这是一个跨度(而不是div),因为它是一个内联元素,使其在不同的场景中使用更方便。
参考链接:
> http://en.wikipedia.org/wiki/Span_and_div#Differences_and_default_behavior
> http://learnwebdesignonline.com/span-div
原文地址:https://www.jb51.cc/aspnet/252337.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。