是否可以构建一个源自System.Web.UI.WebControls.WebControl
的控件,允许“空”属性?
即。我需要输出<div helloworld></div>
我已尝试覆盖RenderEndTag()
和this.Attributes.Add("helloworld",null)
,但都无法正常工作。
答案 0 :(得分:0)
没有。在ASP.NET Web表单中用于控件解析的语法要求属性必须具有值。
你能做的最好的事情就是使用内在的内容:
<asp:Label runat="server" id="fooLabel" Text="Hello, world!"/>
与
相同<asp:Label runat="server" id="fooLabel">Hello, world!</asp:Label>
答案 1 :(得分:0)
看得更深一点,以下代码有效;
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
writer.AddAttribute("helloworld", null);
}
在写入属性的中间向下反映System.Web.UI.HtmlTextWriter.RenderBegin()
显示以下行:
...
this.writer.Write(' ');
this.writer.Write(renderAttribute.name);
if (renderAttribute.value != null)
{
this.writer.Write("=\"");
...
这说明了上述原因,this.Attributes.Add
没有(我认为运行过滤器以排除任何空属性值)。