2011-03-21 50 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

相关问题