如何强制WebControl
呈现为<div>
?目前,它呈现为<span>
,我们的UI用户更喜欢<div>
。为了容纳他,我想看看这是否可能,如果是的话,我怎么可能。
答案 0 :(得分:7)
您可以覆盖WebControl的RenderBeginTag方法:
public override void RenderBeginTag(HtmlTextWriter writer)
{
writer.RenderBeginTag("div");
}
还有一个可以覆盖的RenderEndTag,在这种情况下可能没有必要:
public override void RenderEndTag(HtmlTextWriter writer)
{
writer.RenderBeginTag();
}
答案 1 :(得分:3)
是的,这绝对是可能的。 Asp.net让您完全控制渲染的输出。
asp.net团队发布了许多用于CSS友好渲染的适配器,用于Menu,TreeView和FormView等控件。看看CSS friend control adapters
您可以随时自行构建,以根据UI人员的需要自定义渲染。
答案 2 :(得分:0)
可能更好地覆盖TagKey
,如下所示:
protected override HtmlTextWriterTag TagKey => HtmlTextWriterTag.Div;
然后WebControl
呈现的任何属性将继续放在开始标记上。