2010-08-17 5 views
1

J'ai un ListView avec environ 10 lignes. J'ai un modèle d'élément pour ces lignes et cela fonctionne correctement. Je veux avoir deux lignes de plus dans ce ListView, mais ces lignes ne correspondent pas au modèle d'élément car elles ont un contrôle de plus dans la première colonne.Formats de lignes multiples dans un ListView

La disposition de ListView est basée sur un tableau HTML avec 10 lignes et 4 colonnes. Par exemple, les 8 premières lignes ont uniquement un contrôle TextBox ASP.NET dans la première colonne et 2 lignes ont dans un contrôle TextBox ASP.NET et un contrôle Label ASP.NET dans la première colonne.

Y at-il une solution à mon problème?

Répondre

0

Si vous parlez de GridView, tenez compte des points suivants.

Liez la vue Grille en considérant que la première colonne ne possède qu'un seul contrôle.

Utilisez l'événement System.Web.UI.WebControls.GridView.RowDataBound pour insérer/modifier le contenu de votre cellule individuelle dans une ligne sélectionnée.

Pour l'édition de 8 rangs (zéro indice basé), et ajoutez un contrôle Label en plus de la commande existante,

 if (e.Row.RowIndex == 8) 
     { 
      System.Web.UI.WebControls.Label label = new System.Web.UI.WebControls.Label(); 
      label.Text = "MyRow"; 
      e.Row.Cells[0].Controls.AddAt(0, label); 
     } 

où e indique le EventArg en cas RowDataBound.

0

Configurez votre modèle et votre tableau HTML avec toutes les commandes - incluez la zone de texte et l'étiquette pour les lignes "spéciales".

Dans l'événement ItemDataBound de ListView, vous pouvez ensuite tester si vous souhaitez afficher le contrôle supplémentaire et, dans le cas contraire, le masquer.

Private Sub MyListView_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles MyListView.ItemDataBound 
    If e.Item.ItemType = ListItemType.Item Or _ 
     e.Item.ItemType = ListItemType.AlternatingItem Then 

     Dim MyLabel As Label = DirectCast(e.Item.FindControl("MyLabel"), Label) 
     MyLabel.Visible = ShowLabel() 
    End If 
End Sub 

Dans le code ci-dessus showLabel de est une fonction qui retourne Vrai ou faux selon que l'étiquette doit être affichée ou non. Vous devriez le remplacer par n'importe quelle logique que vous devez tester pour voir si l'étiquette devrait être affichée.

Questions connexes