2010-12-01 9 views
0

J'ai un ListView avec un modèle, il met un tas de données, comme XY Z.Comment modifier dynamiquement ListView sur DataBound?

Je veux cacher certaines colonnes en fonction de critères, donc j'ai un événement ItemDataBound, mais je ne sais pas comment pour obtenir la ligne listview réelle afin que je puisse faire des choses pour le faire.

Des idées?

Répondre

1

Vous pouvez accéder à la propriété Item ListViewItemEventArgs pour accéder à l'élément en cours (celui lié aux données).

Le code exemple ci-dessous (qui montre comment personnaliser un élément ListView en cas ItemDataBound) a été prise du MSDN documentation:

protected void ContactsListView_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    Label EmailAddressLabel; 
    if (e.Item.ItemType == ListViewItemType.DataItem) 
    { 
     // Display the e-mail address in italics. 
     EmailAddressLabel = (Label)e.Item.FindControl("EmailAddressLabel"); 
     EmailAddressLabel.Font.Italic = true; 

     System.Data.DataRowView rowView = e.Item.DataItem as System.Data.DataRowView; 
     string currentEmailAddress = rowView["EmailAddress"].ToString(); 
     if (currentEmailAddress == "[email protected]") 
     { 
      EmailAddressLabel.Font.Bold = true; 
     } 
    } 
} 
+0

Merci cette méthode FindControl est ce que je avais besoin, a travaillé un régal! – NibblyPig

Questions connexes