没有标记的HtmlGenericControl

时间:2011-07-04 13:17:54

标签: c# asp.net web

Asp.NET C#。

可以创建没有标记的HtmlGenericControl吗?如果我写:

HtmlGenericControl o_My_Control = New HtmlGenericControl();

它会自动返回span元素。我需要一个UserControl,因为我必须将此控件添加到另一个usercontrol Control.Add(o_My_Control)中,我需要直接附加html。我使用o_My_Control.innerHTML。

你能帮我找到解决方案吗?

2 个答案:

答案 0 :(得分:7)

HtmlGenericControl是用于表示HTML元素的控件,因此它必须具有名称。您可以提供一个,如果不提供,则使用默认值“span”。

如果您想要直接将某些文本放入页面,那么您可能需要查看literalControl(http://msdn.microsoft.com/en-us/library/system.web.ui.literalcontrol.aspx)。此控件旨在用于“HTML元素,文本以及ASP.NET页面中不需要在服务器上进行处理的任何其他字符串”。

所以你可以做到

myUserControl.Controls.Add(new LiteralControl(myHTMLstring));

并且根本不需要使用innerHTML。

答案 1 :(得分:1)

自动返回span元素,因为所有服务器控件都包含span标记。有几种方法可以删除这些标记,但如果您能够编写自定义控件然后覆盖“RenderBeginTag”和“RenderEndTag”方法,则可以通过这种方式解决问题。

有关使用此方法解决问题的信息,请参阅http://weblogs.asp.net/gunnarpeipman/archive/2009/04/09/removing-span-tags-around-server-control.aspx

希望有所帮助。