How can i access a control within a ListView once a button has been clicked (ASP.NET c#)?

StackOverflow https://stackoverflow.com/questions/1803525

  •  05-07-2019
  •  | 
  •  

Question

I need to access a label control in a listview when i've clicked a button (that is on the same row)...

Does anyone know how to do this please? :(

See below for more of an insight...

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 Behind:

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 

}
Was it helpful?

Solution

@Saar's code should work but you might need to change your event handler to handle the ItemCommand event on the ListView, rather the the Click event of the button:

<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>

Then your event handler will look something like this:

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

OTHER TIPS

Try like this.

Label lb = e.Item.FindControl("lblDone") as Label;    
b.Visible = false;    
lb.Text = "text goes here";
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top