ASP.NET:如何以声明方式向Web控件添加自定义/命名空间的XHTML属性?

时间:2010-08-24 20:49:34

标签: asp.net xhtml web-controls custom-attributes

通常,webcontrol的未知属性会传递给浏览器中的呈现元素。以下是有效的。

<asp:label runat="server" Text="Label Text" helpId="101" />

但是,如果您使用如下所示的命名空间属性

<asp:label runat="server" Text="Label Text" myNs:helpId="101" /></div>

即使在html元素中声明了自定义命名空间,该属性也不会呈现给客户端,如:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:myNs="http://www.acme.com/htmlext">

有没有人知道如何将其呈现给客户端,而无需使用自定义控件。模块或其他全局“可插拔”解决方案是可以接受的。

1 个答案:

答案 0 :(得分:0)

在MSDN上找到this article ...看起来很有希望。 但是您需要创建一个自定义Web控件。

WebControl.AddAttributesToRender方法

将需要呈现的HTML属性和样式添加到指定的HtmlTextWriterTag。

[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] 
  protected override void AddAttributesToRender(HtmlTextWriter writer) 
  {

     writer.AddAttribute("myNs:helpId", "101");
     base.AddAttributesToRender(writer);

  }