ListView コントロールの最後の項目をスタイルする簡単な方法はありますか? 基本的にクラスを追加する必要があります。
乾杯
顧客名のリストをコンマで区切ります。最後の顧客名はドットで終わります。
お客様A、お客様B、お客様C。
<asp:ListView ID="lvCustomers" runat="server">
<LayoutTemplate>
<div id="itemPlaceHolder" runat="server"></div>
</LayoutTemplate>
<ItemTemplate>
<%# Eval("CustomerName")<%# Container.DisplayIndex == (Container.BindingContainer.As<ListView>().DataSource.As<System.Collections.Generic.List<String>>().Count - 1) ? "." : ", " %>
</ItemTemplate>
</asp:ListView>
これは、拡張メソッド 'As' を使用します。
/// <summary>
/// Returns this object casted as a different type.
/// </summary>
/// <typeparam name="T">A type</typeparam>
/// <param name="obj">An object</param>
/// <returns>A boolean value.</returns>
public static T As<T>(this object obj) where T : class
{
if (obj == null) return null;
return obj as T;
}
私はそれを次のように機能させました
<%#(Container.DataItemIndex == dataList.Count - 1 ? "last" : "")%>
ここで、datalist はコード ビハインドで構築され、リストビューにバインドされたカスタム データ クラスです。
phoenix's answer は実際には質問に答えていません.phoenixは最後のアイテムを別のCSSクラスでスタイリングすることを提案していますが、どのアイテムが最後のアイテムであるかをどのように知ることができますか? ListView には LastItemTemplate がありません。
<%# Container.DisplayIndex %> を使用して、現在のリスト内の位置を取得できます。Control で Items.Count を使用して合計を取得できますが、これら 2 つを組み合わせることは、私の ASP.NET スキルを少し超えています。