2011-03-21 57 views
33

我有一個ASP LinkButton控制和我想知道如何發送一個值後面的代碼,當它被點擊?這個事件可能嗎?LinkBut​​ton發送值到後面的代碼OnClick

<asp:LinkButton ID="ENameLinkBtn" runat="server" 
    style="font-weight: 700; font-size: 8pt;" 
    onclick="ENameLinkBtn_Click" ><%# Eval("EName") %></asp:LinkButton> 

回答

59

只需添加到CommandArgument參數,並讀出來的Click處理程序:

<asp:LinkButton ID="ENameLinkBtn" runat="server" 
    style="font-weight: 700; font-size: 8pt;" CommandArgument="YourValueHere" 
    OnClick="ENameLinkBtn_Click" > 

然後在您的點擊事件:

CommandArgument='<%# Eval("SomeFieldYouNeedArguementFrom") %>' 
+2

可以聲明發件人爲LinkBut​​ton的,跳過類型轉換:

protected void ENameLinkBtn_Click(object sender, EventArgs e) { LinkButton btn = (LinkButton)(sender); string yourValue = btn.CommandArgument; // do what you need here } 

您也可以綁定時,如果您使用的是任何可綁定的控件LinkButton做設置CommandArgument參數 保護無效ENameLinkBtn_Click(LinkBut​​ton發件人,EventArgs e){0} {0} {字符串yourValue = sender.CommandArgument; //做你在這裏所需要的 } (對不起,我試過但我不能格式化代碼) – RocketCity 2016-03-10 22:31:20

1

嘗試和檢索鏈接按鈕的Text屬性後面的代碼:

protected void ENameLinkBtn_Click (object sender, EventArgs e) 
{ 
    string val = ((LinkButton)sender).Text 
} 
2

添加的CommandName屬性,以及可選的CommandArgument屬性,你的LinkBut​​ton控件。然後將OnCommand屬性設置爲您的Command事件處理程序的名稱。

<asp:LinkButton ID="ENameLinkBtn" runat="server" CommandName="MyValueGoesHere" CommandArgument="OtherValueHere" 
      style="font-weight: 700; font-size: 8pt;" OnCommand="ENameLinkBtn_Command" ><%# Eval("EName") %></asp:LinkButton> 

<asp:Label id="Label1" runat="server"/> 

那麼這將是可用的,當你的處理程序:

protected void ENameLinkBtn_Command (object sender, CommandEventArgs e) 
{ 
    Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument; 
} 

更多信息上MSDN

相關問題