是否可以强制WebControl呈现为<div>而不是<span>?</span> </div>

时间:2012-08-01 19:22:38

标签: asp.net html .net-3.5 custom-server-controls

如何强制WebControl呈现为<div>?目前,它呈现为<span>,我们的UI用户更喜欢<div>。为了容纳他,我想看看这是否可能,如果是的话,我怎么可能。

3 个答案:

答案 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让您完全控制渲染的输出。

查看Control Adapters

asp.net团队发布了许多用于CSS友好渲染的适配器,用于Menu,TreeView和FormView等控件。看看CSS friend control adapters

您可以随时自行构建,以根据UI人员的需要自定义渲染。

答案 2 :(得分:0)

可能更好地覆盖TagKey,如下所示:

protected override HtmlTextWriterTag TagKey => HtmlTextWriterTag.Div;

然后WebControl呈现的任何属性将继续放在开始标记上。