Ort*_*iga 18 asp.net asp.net-3.5 asp.net-4.0
在asp.net中,如果使用自定义属性,通常会按原样呈现.
考虑到这个标记(注:属性,如id,name和for所有的例子作为自己生成的ID被拆除/名称详细):
<asp:TextBox runat="server" data-foo="bar" />
Run Code Online (Sandbox Code Playgroud)
在asp.net中呈现为:
<input type="text" data-foo="bar" />
Run Code Online (Sandbox Code Playgroud)
也就是说,asp.net保持data-foo不变.
复选框通常呈现如下:
<asp:CheckBox runat="server" Text="Normal" />
Run Code Online (Sandbox Code Playgroud)
呈现为:
<input type="checkbox" />
<label>Normal</label>
Run Code Online (Sandbox Code Playgroud)
但是,如果您在复选框上添加自定义属性:
<asp:CheckBox runat="server" Text="Custom attribute" data-foo="bar" />
Run Code Online (Sandbox Code Playgroud)
它呈现为:
<span data-foo="bar">
<input type="checkbox" />
<label>Custom attribute</label>
</span>
Run Code Online (Sandbox Code Playgroud)
如您所见,渲染的范围用于保存属性.如果在后面的代码中添加属性,也会发生这种情况.任何其他HtmlControl,AFAIK都不会发生这种情况.
有谁知道为什么这个范围被渲染来保存属性?
无论如何在输入标签中呈现属性?
Luk*_*z M 21
我不确定它为什么用span来渲染,但我想你可以直接将属性添加到代码中的input元素CheckBox -behid,如下所示:
myCheckBox.InputAttributes.Add(...)
Run Code Online (Sandbox Code Playgroud)
参考链接:
更新
使用了另一个父元素,因此应用于a的属性CheckBox可以同时影响input文本和文本.我认为它是一个span(而不是一个div),因为它是一个内联元素,使得在不同场景中使用更方便.
参考链接:
| 归档时间: |
|
| 查看次数: |
20388 次 |
| 最近记录: |