2009-11-26 73 views
0

我需要訪問列表視圖中的標籤控件,當我點擊一個按鈕(即在同一行)...一旦單擊按鈕(ASP.NET c#),如何訪問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 

} 

回答

1

@Saar's code應該可以工作,但你mig HT需要改變你的事件處理程序來處理ItemCommand事件的ListView控件,而按鈕的Click事件:

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

那麼你的事件處理程序將是這個樣子:

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

@Ian:謝謝你完成。 :) – Saar 2009-11-26 14:39:19

+0

這是完美的歡呼聲給你們倆! – Stephen 2009-11-26 14:54:04

2

嘗試這樣

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

沒錯。 ..但那是我的問題...我無法訪問...這就是爲什麼我再次問它... :( – Stephen 2009-11-26 13:03:16

+0

不好,我很害怕...我得到這個錯誤: 「System.EventArgs」不包含關於「項」和沒有擴展方法「項」接受類型「System.EventArgs」的第一個參數的定義可以發現(是喲你缺少一個使用指令或程序集引用?) – Stephen 2009-11-26 13:58:39

相關問題