3

ASP.NET 用の CSS フレンドリー コントロール アダプターは、スタイル設定が簡単なマークアップの作成に最適です。GridView アダプターの大きな利点は、THEAD、TBODY、および TFOOT タグを生成することです。これにより、jQuery などのライブラリー(クライアント側のテーブル ソート用のTablesorterなど) を使用して、非常に優れた処理を実行できます。

問題は、CSSFriendlyAdapters.browser ファイルを介したアダプターのグローバルなオン/オフのように見えることです。現在運用中の多数の GridView が既にあり、新しいものに CSS フレンドリー アダプターのみを使用したい場合はどうすればよいですか?

したがって、次の 2 種類のソリューションに興味があります。

1) GridView を拡張または変更して (新しいタグを使用できます)、THEAD および TBODY タグを出力する方法。

2) CSS Friendly Control Adapters を条件付きで適用または無効にする方法。

4

3 に答える 3

4

少し調べた後、これと似たようなことをしました

使用したいコントロールをサブクラス化する必要があります(あなたの場合はgridview、私の場合はradiobuttonlist)

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

次に、asp.net コントロールの代わりに、.browser ファイルにカスタム サブクラスを参照させるだけです。

例えば

<browsers>
  <browser refID="Default">
    <controlAdapters>
      <adapter controlType="FM.Web.Source.WebControls.UlRadioButtonList" adapterType="FM.Web.Source.ControlAdapters.RadioButtonListAdapter" />
    </controlAdapters>
  </browser>
</browsers>
于 2009-07-21T09:00:04.153 に答える
0

THEADタグとTBODYタグを作成する方法を見つけました。

出典:jQueryのTableSorterを使用した並べ替え可能なGridView

裸の骨の詳細:

myGrid.UseAccessibleHeader = true;
myGrid.HeaderRow.TableSection = TableRowSection.TableHeader;
myGrid.FooterRow.TableSection = TableRowSection.TableFooter;
于 2008-11-10T22:48:17.387 に答える
0

CSSフレンドリー...

アダプターの無効化

サーバー側タグに AdapterEnabled="false" を明示的に追加すると、これらのサンプル アダプターは、コントロールに対して ASP.NET フレームワークのネイティブ レンダリングを使用しようとします。注意: これはサポートされておらず、うまく機能しないことがよくあります。基本的に、フレームワークは、コントロールごとにアダプターを無効にすることをサポートしていません。AdapterEnabled 属性は、実験的な使用のみを目的としています。

ソース

または、GridView から派生し、RenderChildren メソッドをオーバーライドするクラスを作成できます。これを機能させる方法を理解するには、いくつかの実験が必要になる場合があります。この点に関するアイデアを提供するために、GridView でコントロールがどのように表示されるかについては調べていません。おそらく、どの行がヘッダー/フットであり、それらの周りと他の行の周りにレンダリング/表示されるかを把握する必要があるだけです。

于 2008-11-09T20:54:23.450 に答える