2010-08-30 6 views
1

Je n'arrive pas à récupérer la valeur d'une cellule dans une grille.Valeur Exstract de la cellule Gridview créée par la fonction dans les modèles d'élément

Je pense que cela peut avoir quelque chose à voir avec le modèle d'élément appelant une fonction puisque je suis capable de récupérer les valeurs des cellules qui n'appellent pas une fonction dans la même grille.

Comment puis-je extraire la valeur affichée de cette cellule?

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     GridViewRow row = GridView1.SelectedRow; 
     lblTest.Text=row.Cells[7].Text; 

} 

<ItemTemplate> 

    <%# GetWednesday(decimal.Parse(Eval("Wed").ToString())).ToString("N2") %> 

</ItemTemplate> 

Répondre

0

Edit:

farfouillé un peu plus, il semble que votre contenu est là, mais pas sous forme de texte. C'est un DataBoundLiteralControl dans la collection Controls de la cellule. Vous pouvez obtenir la valeur avec:

var value = (row.Cells[7].Controls[0] as DataBoundLiteralControl).Text.Trim(); 

L'utilisation de la fonction Trim() est nécessaire d'enlever les espaces avant et au-dessus et en dessous de la déclaration obligatoire dans votre modèle. Je préfère encore l'approche décrite ci-dessous.

Fin

Si je comprends bien, je pense que votre valeur est pas stockée dans ViewState.

Vous pouvez obtenir votre texte avec cette autre approche:

<ItemTemplate> 
    <asp:Label ID="mylabel" runat="server" 
       Text='<%# GetWednesday(decimal.Parse(Eval("Wed").ToString())).ToString("N2") %>' /> 
</ItemTemplate> 

Et à partir du code derrière:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    var label = GridView1.SelectedRow.FindControl("mylabel") as Label; 
    lblTest.Text = label.Text; 
} 
+0

Merci beaucoup. Les deux réponses que vous avez données ont fonctionné. –

Questions connexes