单击按钮后如何访问ListView中的控件?

时间:2009-11-26 12:33:37

标签: c# asp.net listview

当我点击一个按钮(位于同一行)时,我需要访问列表视图中的标签控件...

有人知道怎么做吗? :(

请参阅下文,了解更多信息......

ASPX页面:

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

代码背后:

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    
}

2 个答案:

答案 0 :(得分:1)

在这个简单的例子中,我应该考虑使用Javascript(JQuery)

<asp:ListView ID="ListView1" runat="server" DataSourceID="DataSource">
<LayoutTemplate>//Etc </LayoutTemplate>
<ItemTemplate>
<asp:Label ID="lblDone" runat="server" style="visibility:hidden">Your vote has been counted</asp:Label>
<asp:Button OnClientClick="showLblDone()" ID="voteButton" runat="server" Text="Vote" CommandArgument='<%#Eval("id") %>' OnClick="voteOnThis" />
</ItemTemplate>

现在,在脚本标签内部定义showLblDone函数:

<script>
function showLblDone (){
$(this).siblings('span').show();}
</script>

如果要在每次单击时显示/隐藏,也可以使用参数调用此函数,或者可以使用.toggle()代替.show()。

在这种情况下,您必须在ItemTemplate中添加div(或Panel)。

答案 1 :(得分:0)

您需要挂钩listview行绑定并添加单击时要包含的信息。使用此功能,您可以向单击时读回的按钮添加属性,例如......

如果您发布了一些实际代码,我可能会提供更多帮助。