2010-06-08 2 views
0

J'ai une liste de données ListView dans asp.Net. J'ai à la fois ItemTemplate et SelectedItemTemplate utilisés dans la page aspx.Pourquoi mon ListView SelectedItemTemplate ne s'affiche-t-il pas lorsqu'il est sélectionné?

Dans la page .cs j'ai ceci. J'ai vérifié en parcourant le code que l'instruction if évalue à true seulement quand il est supposé le faire, et que l'index sélectionné est défini. Cependant, la sortie HTML est comme si tous les éléments utilisaient ItemTemplate.

int indexCounter = 0; 
    protected void lvProducts_ItemDataBound(object sender, ListViewItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListViewItemType.DataItem) 
     { 
      if (((DataRowView)e.Item.DataItem)["ID"].ToString() == Request.QueryString["id"]) 
      { 
       lvProducts.SelectedIndex = indexCounter; 
      } 
      indexCounter++; 
     } 
    } 

Y a-t-il une meilleure façon de procéder?

Répondre

3

vérifier cette post

« Réglage du SelectedIndex partout après fonctionne DataBinding, vous venez de ne pas obtenir le SelectedItemTemplate Pour que vous avez soit rebind les données;.. Ou reinstantiate la SelectedItemTemplate sur ListViewItem assurez-vous effacez d'abord la collection ListViewItem.Controls! "