开发者

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

开发者 https://www.devze.com 2022-12-12 09:21 出处:网络
I need to access a label control in a listview when i\'ve clicked a button (that is on the same row)...

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(myB开发者_C百科utton.CommandArgument));
// Here i would like to access the 'label' lblDone and make this Visible 

}


Try like this.

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


@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
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号