2009-11-26 5 views
0

J'ai besoin d'accéder à un contrôle d'étiquette dans une liste lorsque j'ai cliqué sur un bouton (qui est sur la même ligne) ...Comment puis-je accéder à un contrôle dans ListView après avoir cliqué sur un bouton (ASP.NET C#)?

Est-ce que quelqu'un sait comment faire cela s'il vous plaît? :(

Voir ci-dessous pour plus d'un aperçu ...

ASPX Page:

<asp:ListView ID="ListView1" runat="server" DataSourceID="DataSource"> 
<LayoutTemplate>//Etc </LayoutTemplate> 


<ItemTemplate> 

<asp:Label ID="lblDone" runat="server" Visible="false">Your vote has been counted</asp:Label> 

<asp:Button ID="voteButton" runat="server" Text="Vote" CommandArgument='<%#Eval("id") %>' 
         OnClick="voteOnThis" /> 

</ItemTemplate> 

code derrière.

protected void voteOnThis(object sender, EventArgs e) 
{ 
    Button myButton = (Button)sender; 
    Voting.vote(int.Parse(myButton.CommandArgument)); 
// Here i would like to access the 'label' lblDone and make this Visible 

} 

Répondre

1

@Saar's code devrait fonctionner mais vous mig ht besoin de changer votre gestionnaire d'événements pour gérer l'événement ItemCommand sur le ListView plutôt le l'événement Click du bouton:

<asp:ListView ID="ListView1" runat="server" DataSourceID="DataSource" 
     OnItemCommand="ListView1_ItemCommand"> 
    <LayoutTemplate>//Etc </LayoutTemplate> 
    <ItemTemplate> 
     <asp:Label ID="lblDone" runat="server" Visible="false">Your vote has been counted</asp:Label> 
     <asp:Button ID="voteButton" runat="server" Text="Vote" CommandArgument='<%#Eval("id") %>' /> 
    </ItemTemplate> 
    ... 
</asp:ListView> 

Ensuite, votre gestionnaire d'événements ressemblera à quelque chose comme ceci:

protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e) { 
    // @Saar's code 
} 
+0

@Ian: merci de compléter. :) – Saar

+0

Thats acclamations parfaites à vous deux! – Stephen

2

Essayez comme cette

Label lb = e.Item.FindControl("lblDone") as Label;  
b.Visible = false;  
lb.Text = "text goes here"; 
+0

Yep. .. mais c'est ma question ... que je ne peux pas accéder ... c'est pourquoi je le demande à nouveau ... :( – Stephen

+0

Pas bon j'ai peur ... Je reçois cette erreur: 'System.EventArgs' ne contient pas de définition pour 'Item' et aucune méthode d'extension 'Item' acceptant un premier argument de type 'System.EventArgs' n'a été trouvée (yo Vous avez manqué une directive using ou une référence d'assembly?) – Stephen

Questions connexes