Asp.NET C#。
可以创建没有标记的HtmlGenericControl吗?如果我写:
HtmlGenericControl o_My_Control = New HtmlGenericControl();
它会自动返回span元素。我需要一个UserControl,因为我必须将此控件添加到另一个usercontrol Control.Add(o_My_Control)中,我需要直接附加html。我使用o_My_Control.innerHTML。
你能帮我找到解决方案吗?
答案 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。
希望有所帮助。