2010-01-08 2 views
2

Mon contrôle ListView contient 4 colonnes et 30 lignes. je peux récupérer le numéro de ligne en utilisant:ASP .NET - Récupère les valeurs de la ligne de contrôle Listview sélectionnée?

//get row of listview item 
ListViewDataItem item1 = e.Item as ListViewDataItem; 
int findMe = item1.DisplayIndex; 

Comment puis-je puis obtenir des valeurs d'une ou toutes les 4 colonnes?

Je tentais:

this.lblReponseRoute.Text = item1.FindControl("routenameLabel").ID.ToString(); 

Update1:

La solution finale est:

//get row of listview item 
ListViewDataItem item1 = e.Item as ListViewDataItem; 
int findMe = item1.DisplayIndex; 

//find label value 
var routeLabel = (Label)ListView1.Items[findMe].FindControl("routenameLabel"); 
this.lblReponseRoute.Text = routeLabel.Text; 

Répondre

2

Si routenameLabel est un contrôle serveur, je crois que vous allez avoir pour le lancer comme tel avant d'accéder aux propriétés:

var routeLabel = (Label)item1.FindControl("routenameLabel"); 
lblResponseRoute.Text = routeLabel.ID.ToString(); 

Avez-vous une erreur sur le code que vous avez posté?

Edit: Notez que dans votre réel du code vous voudriez tester null avant de lancer à l'étiquette.

+0

merci. Je n'obtenais aucune erreur spécifique - juste l'ID de l'étiquette quand je veux sa valeur. J'ai modifié mon message avec la solution de code final. –

1
var routeLabel = (Label)item1.FindControl("routenameLabel"); 
lblResponseRoute.Text = routeLabel.ID.ToString(); 

Il devrait être:

var routeLabel = (Label)item1.FindControl("routenameLabel"); 
lblResponseRoute.Text = routeLabel.Text.ToString(); 

.Text pas .ID, nous savons déjà le nom de l'étiquette.

Questions connexes