2008-11-08 3 views
3

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

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

Так что я был бы заинтересован в два типа решений:

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

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

ответ

4

я только что сделал что-то похожее на это после того, как делать небольшое исследование

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

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

Спасибо, человек, хотя ты не помог мне напрямую, ты спас мне много времени, давая мне ключ к решению проблемы. Спасибо еще раз! – Saxophonist 2015-03-10 18:21:54

0

CSS Дружественные ...

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

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

Source

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

+0

Отключение адаптеров не очень изящное решение, так как это потребует касания каждой существующей сетки. Было бы гораздо лучше иметь решение, в котором адаптер можно условно включить. Переопределение метода RenderChildren кажется слишком большой работой и слишком подверженным ошибкам для реального использования. – 2008-11-10 22:29:07

0

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

Источник: Sortable GridView using jQuery's TableSorter

Bare Bones Детали:

myGrid.UseAccessibleHeader = true; 
myGrid.HeaderRow.TableSection = TableRowSection.TableHeader; 
myGrid.FooterRow.TableSection = TableRowSection.TableFooter;