est-il un moyen facile de style le dernier élément dans un contrôle ListView? Fondamentalement besoin d'ajouter une classe.Styling dernier élément dans un ListView
Vive
est-il un moyen facile de style le dernier élément dans un contrôle ListView? Fondamentalement besoin d'ajouter une classe.Styling dernier élément dans un ListView
Vive
Il est
classe pesudo.
Mais ne fonctionnera pas dans tous les navigateurs. Le meilleur moyen est d'ajouter une classe CSS au dernier élément de la liste et de le styler.
Si vous pouvez utiliser jQuery, vous pouvez utiliser le
sélecteur
réponse de Phoenix ne répond pas vraiment à la question, Phoenix suggère styling le dernier élément avec une classe CSS différente, mais comment savez-vous quel est le dernier objet? ListView a no LastItemTemplate.
Vous pouvez utiliser <% # Container.DisplayIndex%> pour obtenir votre position dans la liste actuelle. Vous pouvez utiliser Items.Count sur le contrôle pour obtenir le total, mais en combinant ces deux choses est légèrement au-delà de mes compétences ASP.NET.
Les virgules séparent une liste de noms de clients. Le dernier nom du client se terminera par un point.
Un client, B Client, 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>
Il utilise une méthode d'extension '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;
}
que je fais ce genre de choses dans le cas listview ItemDataBound. Mais pour cela, j'ai besoin de savoir quel serait le type de DataSource.
Par exemple:
protected void LvFilters_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
ListViewDataItem item = e.Item as ListViewDataItem;
if(item.DataItemIndex == ((YourDataSourceType)lvFilters.DataSource).Count - 1)
e.Item.FindControl("Control's id here").Visible = false; // or whatever you wanna do about styling
}
}
Je l'ai travaillé comme
<%#(Container.DataItemIndex == dataList.Count - 1 ? "last" : "")%>
où datalist est la construction de la classe de données personnalisée dans le code derrière et binded à listview.
Est-ce que listview ne contrôle pas un formulaire Windows? – rahul
Le nombre d'enfants est-il toujours le même et connu? –