fre*_*ler 12 asp.net .net-4.0 asp.net-webcontrol
简单的问题,难以搜索(由于问题的主要部分是单个字母p)!
在ASP.NET中,<asp:Panel/>呈现为<div></div>块,<asp:Label/>呈现为<span></span>块...是否有一个呈现为<p></p>块的?
它从WebDN控件类的MSDN看起来不像它,但我想如果我错过了一些明显的东西我会问.
(我意识到显而易见的解决方案是只使用<p runat="server" id="p1"></p>和使用通用的html控件类)
Cᴏʀ*_*ᴏʀʏ 15
不,没有专门针对的内置控件<p>.A LiteralControl或<p runat="server" />您提供的版本是您将获得的最接近的版本.
但是,您总是可以创建自己的控件.您可以创建一个实现的类WebControl,并覆盖该Render方法:
protected override void Render(HtmlTextWriter output)
{
output.WriteFullBeginTag("p");
output.Write(this.Text);
output.WriteEndTag("p");
}
Run Code Online (Sandbox Code Playgroud)
有关如何编写自己的服务器控件的更多说明:
这里列出了所有.NET Web和服务器控件:
我有完全相同的问题.在我开始使用Cory在这里使用的类似技术之后,我发现了一个更简单的技术,它基本上做同样的事情并解决了你的问题.但是,与上述解决方案相比,它有一个好处:您不必自己渲染整个控件.
基本上你需要做的就是以下几点:
RenderBeginTag()方法. p.span在此示例中).见下面的代码:
public class P : Label
{
public override void RenderBeginTag(HtmlTextWriter writer)
{
writer.RenderBeginTag("p");
}
}
Run Code Online (Sandbox Code Playgroud)