ほとんどのデータバインドされたASP.NETコントロールのようなASP.NET ListViewコントロールには、奇数行と偶数行に対して異なるCSSクラスを描画するために使用できるAlternatingItemTemplateがあります。コントロールにはGroupTemplateもあり、アイテムをグループ化し、TRにグループ化されているTDの例3アイテムを表示できます。ただし、グループテンプレートは交替しません。私の質問は、GroupTemplateでtrのクラス属性をどのように置き換えるかです。基本的に私はTRに3つのアイテムを持ち、奇数と偶数TRに交互にスタイルを入れたいと思っています。ASP.NET ListView交互のグループ
データバインディング式を別のデータバインディングコントロールにネストすることを避けたいと思います。データバインディング式<%# Alternate() %>
でTRのクラスをバインドしようとしましたが、データバインディング式はitemtemplateでのみ呼び出されます(明らかに、 databindイベントであり、グループテンプレートに呼び出されません)
アイデア?
例コード:
まず<asp:ListView ID="lv1" runat="server" EnableViewState="false" GroupItemCount="3">
<LayoutTemplate>
<table class="asd">
<asp:PlaceHolder ID="groupPlaceholder" runat="server"></asp:PlaceHolder>
</table>
</LayoutTemplate>
<GroupTemplate>
<tr class='<%# GetAlternatingCssClass() %>'>
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</tr>
</GroupTemplate>
<ItemTemplate>
<td>
<asp:HyperLink runat="server" NavigateUrl='<%# Eval("Url") %>'> <%# Eval("Text") %> </asp:HyperLink>
</td>
</ItemTemplate>
</asp:ListView>
実際、プロジェクトのどこでも使用できるテーブルのテンプレートコントロールを作成したいと思います。私はコードで簡単にこれを行うことができますが、私はデザイナーがC#コードを見ずにコントロールを変更してスクリプトなどを添付できるようにしたいので、ListViewを使う予定です。私はおそらくコントロールにDataPagerをラップします。ほとんどの場合、テーブルをUpdatePanelでラップし、ajax呼び出しのロード通知を行います。コントロール全体を最初から作成するのではなく、ASP.NETコントロールを使用してその機能を公開する方が簡単になるようです。私が間違っている? – Stilgar
標準のASP.NETコントロールを使用してユーザーコントロールを作成し、いくつかのプロパティを公開して提供することができます。それはあなたが探しているものを提供するかもしれません。 – Lazarus