Отключение ASP.NET CSS дружественных адаптеров - PullRequest
3 голосов
/ 08 ноября 2008

Адаптеры дружественного управления CSS для ASP.NET отлично подходят для создания разметки, которую легко стилизовать. Большим преимуществом адаптера GridView является то, что он генерирует теги THEAD, TBODY и TFOOT, которые позволяют вам делать действительно замечательные вещи с такими библиотеками, как jQuery, например, Tablesorter для сортировки таблиц на стороне клиента.

Проблема заключается в том, что это похоже на глобальное включение / выключение адаптеров через файл CSSFriendlyAdapters.browser. Что мне делать, если у меня уже есть множество GridView, которые в настоящее время находятся в производстве, и я хочу использовать только дружественные CSS-адаптеры для нового?

Так что меня будут интересовать два типа решений:

1) Способ расширения или изменения GridView (допустим новый тег) для вывода тегов THEAD и TBODY.

2) Способ условного применения или отключения адаптеров дружественного управления CSS.

Ответы [ 3 ]

4 голосов
/ 21 июля 2009

Я только что сделал нечто подобное после небольшого исследования

вам нужно создать подкласс для элемента управления, который вы хотите использовать (gridview в вашем случае, radiobuttonlist в моем случае)

public class UlRadioButtonList : RadioButtonList
    {
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            // Call the base RenderContents method.
            base.Render(writer);
        }
    }

Тогда просто сделайте так, чтобы файл .browser ссылался на ваш пользовательский подкласс вместо элемента управления asp.net

, например

<browsers>
  <browser refID="Default">
    <controlAdapters>
      <adapter controlType="FM.Web.Source.WebControls.UlRadioButtonList" adapterType="FM.Web.Source.ControlAdapters.RadioButtonListAdapter" />
    </controlAdapters>
  </browser>
</browsers>
0 голосов
/ 11 ноября 2008

Я нашел способ создания тегов THEAD и TBODY:

Источник: Сортируемый GridView с использованием TableSorter jQuery

Детали обнаженных костей:

myGrid.UseAccessibleHeader = true;
myGrid.HeaderRow.TableSection = TableRowSection.TableHeader;
myGrid.FooterRow.TableSection = TableRowSection.TableFooter;
0 голосов
/ 09 ноября 2008

CSS Friendly ...

Отключение адаптеров

Если вы добавите явно AdapterEnabled = "false" для вашего серверная метка, эти примеры адаптеров будет пытаться использовать ASP.NET родной рендеринг фреймворка для контроль. Осторожно: это не поддерживается и часто не работает хорошо. Принципиально, рамки не поддержка отключения адаптеров на контрольная база. AdapterEnabled атрибут предназначен только для использования экспериментально.

Источник

Кроме того, вы можете создать класс, производный от GridView и переопределяющий метод RenderChildren. Может потребоваться некоторое экспериментирование, чтобы понять, как заставить это работать. Я не смотрел на то, как элементы управления представлены в GridView, чтобы дать вам какие-либо идеи на этот счет. Предположительно, вам просто нужно выяснить, какие строки являются заголовком / футом и визуализировать / вокруг них и вокруг других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...