ASP.NET: как декларативно добавить настраиваемый атрибут XHTML с пространством имен в веб-элемент управления?

Обычно неизвестные атрибуты веб-элемента управления передаются отображаемому элементу в браузере. Итак, работает следующее.

<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">

Кто-нибудь знает способ заставить это отображать клиенту без использования пользовательского элемента управления. Модуль или другое глобально «подключаемое» решение будет приемлемым.


person Richard Collette    schedule 24.08.2010    source источник
comment
После просмотра сгенерированного исходного кода страницы стало очевидно, что использование префикса атрибута, как я пытаюсь, интерпретируется компилятором asp.net как фильтр устройства, что приводит к тому, что атрибут записывается только для указанного псевдонима устройства. Я не уверен, как обойти это, поскольку нет возможности ознакомиться с внутренними компонентами компилятора страниц.   -  person Richard Collette    schedule 25.08.2010


Ответы (1)


Нашел эту статью на MSDN... выглядит многообещающе. Но вам нужно будет создать собственный веб-контроль.

Метод 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);

  }
person thomasvdb    schedule 24.08.2010
comment
Спасибо, я тоже это видел, но я надеялся найти что-то общее, что позволило бы ему работать со всеми существующими элементами управления. - person Richard Collette; 25.08.2010