首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Asp.net复选框和html数据属性

Asp.net复选框和html数据属性
EN

Stack Overflow用户
提问于 2012-05-23 01:06:29
回答 4查看 22.3K关注 0票数 20

在asp.net中,如果使用自定义属性,通常会按原样呈现。

考虑到这个标记(注意:在所有示例中都删除了属性,如idnamefor,因为它们生成的id/名称都很详细):

代码语言:javascript
复制
<asp:TextBox runat="server" data-foo="bar" />

在asp.net中呈现为:

代码语言:javascript
复制
<input type="text" data-foo="bar" />

也就是说,asp.net使data-foo保持不变。

复选框通常如下所示:

代码语言:javascript
复制
<asp:CheckBox runat="server" Text="Normal" />

呈现为:

代码语言:javascript
复制
<input type="checkbox" />
<label>Normal</label>

但如果您在复选框上添加自定义属性:

代码语言:javascript
复制
<asp:CheckBox runat="server" Text="Custom attribute" data-foo="bar"  />

它呈现为:

代码语言:javascript
复制
<span data-foo="bar">
    <input type="checkbox" />
    <label>Custom attribute</label>
</span>

正如您所看到的,呈现了一个跨度来保存属性。如果您在后台代码中添加该属性,也会发生这种情况。这不会发生在任何其他HtmlControl,AFAIK。

有没有人知道为什么要呈现这个span来保存该属性?

有没有在input标签中呈现属性的方法?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-23 01:18:25

我不确定为什么它是用跨度呈现的,但我想您可以直接将该属性添加到CheckBox input元素中-behid如下所示:

代码语言:javascript
复制
myCheckBox.InputAttributes.Add(...)

参考链接:

更新

还使用了一个额外的父元素,以便应用于CheckBox的属性可以同时影响input和文本。我认为它是一个span (而不是div),因为它是一个内联元素,这使得它更便于在不同的场景中使用。

参考链接:

票数 22
EN

Stack Overflow用户

发布于 2012-05-23 01:14:51

这是渲染引擎构建CheckBox控件的方式,对此没有太多可做的。

您可以做的事情是创建一个runat="server"输入。

代码语言:javascript
复制
<input id="myInput" runat="server" type="checkbox" data-foo="bar"/>
<label>Custom attribute</label>

另一种选择是在加载文档时使用jquery添加data-foo属性

代码语言:javascript
复制
$(function(){
    $('span[data-foo]').each(function(){
        var $span = $(this);
        var value = $span.data('foo');
        $span.find('input').data('foo',value);        
    });
})
票数 4
EN

Stack Overflow用户

发布于 2013-03-28 23:50:06

只需添加另一个方法,当所有其他方法都失败时,您可以始终使用文本控件,并使其呈现您想要的任何内容。在处理回发时,您需要做更多的工作,但有时这是获取所需html的唯一方法。

标记:

代码语言:javascript
复制
<asp:Literal ID="myLiteral" runat="server"/>

代码旁:

代码语言:javascript
复制
myLiteral.Text = string.Format("<input type=\"checkbox\" data-foo=\"{0}\" /><label>Normal</label>", value)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10706714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档