我希望是这样的:

<asp:CheckBox    ID="CheckBox1"    runat="server" CssClass="myClass" />
<asp:RadioButton ID="RadioButton1" runat="server" CssClass="myClass" />
<asp:TextBox     ID="TextBox1"     runat="server" CssClass="myClass" />

.要像这样渲染(with some attributes removed for simplicity):

<input id="CheckBox1"    type="checkbox" class="myClass" />
<input id="RadioButton1" type="radio"    class="myClass" />
<input id="TextBox1"     type="text"     class="myClass" /> 

...实际上,RadioButtonCheckBoxspan标记包装,CSS类应用于其中.

<span class="myClass"><input id="CheckBox1"    type="checkbox" /></span> 
<span class="myClass"><input id="RadioButton1" type="radio"    /></span> 
<input type="text" id="TextBox1" class="myClass" /> 

这是有原因的吗?有没有办法避免呢?这使得jQuery Select 器看起来很难看,因为您不能用以下命令捕获所有 Select 器:

$("input.myClass")

就算它只是要:

$("input.myClass, span.myClass input")

.但那太难看了我可以编写我自己的 Select 器,但同样没有它应有的优雅.

推荐答案

System.Web.UI.WebControls命名空间中的Web控件在不同浏览器中的呈现方式可能不同.你不能指望他们总是呈现相同的元素.他们可能会添加任何他们认为需要的内容,以使其在特定浏览器中工作.

如果您想控制控件如何呈现为html,那么应该使用System.Web.UI.HtmlControls命名空间中的控件.也就是说:

<input type="checkbox" id="CheckBox1" runat="server" class="myClass" />
<input type="radio" name="RadioButton1" runat="server" class="myClass" />
<input type="text" id="TextBox1" runat="server" class="myClass" />

它们将呈现为相应的html元素,没有添加额外的元素.当然,这意味着您必须为浏览器兼容性负责,因为控件没有.而且,这些控件不具备WebControls命名空间中控件的所有功能.

Asp.net相关问答推荐

设置主键时KeyAttribute属性不起作用

C# - 将 xyz 平铺转换为纬度/经度,反之亦然,给出不同的结果

Web 服务器配置为不列出此目录的内容. asp.net vs 2012 错误?

我可以在 .net 核心中使用 Entity Framework 6(非核心)吗?

解析器错误消息:文件/TestSite/Default.aspx.cs不存在

WebAPI 请求流支持

如何使用文件上传控件 Select 多个文件?

如何更改 .ASPX 自动格式化设置 (Visual Studio)

如何在 ASP.NET Web API 中使用非线程安全的 async/await API 和模式?

通过 jQuery 调用 ASP.NET 服务器端方法

aspx 文件中的 if 语句

在 asp.net 中将 JSON 转换为 .Net 对象时出错

Azure Functions 中的 DI

如何从url中删除returnurl?

如何在我自己的方法中模仿 string.Format()?

Windows Azure PaaS(网络角色)的真正替代品?

会员生成密码 仅限字母数字密码?

脚本管理器控制实际上是做什么的?

判断 IQueryable 结果集的最佳方法是什么?

如何调试 w3wp clr.dll 错误