RenderingSelf-ClosingMarkupfromControl-DerivedASP.NETCustomControl我正在开发一个FacebookFBML控件库,想创建我的FBML控件是有点像ASP.NETWebControls库。我有一个默认处理渲染的基类;这是我的渲染方法:protectedoverridevoidRender(HtmlTextWriterwriter){AddAttributesToRender(writer);如果(UseXfbmlSemantics){writer.RenderBeginTag(ElementName);作者.EndRender();作者.RenderEndTag();}else{writer.RenderBeginTag(ElementName);writer.RenderEndTag();我想要的是修改基于UseXfbmlSemantics的渲染-如果它是true它应该渲染例如:当它是false时,应该用自关闭标签渲染:我可以获得“true”条件几乎正确地工作,但是自闭合标签似乎与渲染方法集不兼容。不幸的是,如果是这种情况,这也意味着AddAttributesToRender模式也不起作用。它实际产生的是:如何获取HtmlTextWriter(或我需要使用的HtmlTextWriter)以使其呈现自关闭标记?或者,至少,我怎样才能让它不呈现暂存空间(以便开始和结束标签彼此相邻)?这应该让你继续-它会呈现为.您还可以覆盖RenderBeginTag、RenderContents和RenderEndTag。根据您正在做的事情,您可能需要在RenderControl中做一些其他的事情。您也可以考虑使用ControlAdapter,它可以让您更好地将控制功能与控制html编写分开。公共类FbName:System.Web.UI.WebControls.WebControl{protectedoverridestringTagName{get{return"fb:name";}}publicoverridevoidRenderControl(HtmlTextWriterwriter){RenderBeginTag(writer);//只渲染开始标签。//base.RenderContents(作者);//base.RenderEndTag(作者);}publicoverridevoidRenderBeginTag(HtmlTextWriterwriter){writer.Write("");}}-Jason因为这是搜索“HtmlTextWriterself-closingtag”所以这里是为任何想知道如何做的人准备的:writer.WriteBeginTag("tag");writer.WriteAttribute("属性","属性值");//...在这里添加其他属性...writer.Write(HtmlTextWriter.SelfClosingTagEnd);我建议使用HtmlTextWriter常量:protectedoverridevoidRender(HtmlTextWriterwriter){AddAttributesToRender(writer);writer.Write(HtmlTextWriter.TagLeftChar);//'"}如果使用VisualStudio,请执行以下步骤:工具—>选项—>文本编辑器—>HTML—>格式—>删除自动插入结束标签以上为C#学习教程:ASP派生来自Control.NET自定义控件中渲染自闭标签分享的所有内容,如果对大家有用需要详细了解C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
