LinkBut​​ton将值发送到OnClick背后的代码

时间:2011-03-21 17:12:26

标签: c# asp.net linkbutton

我有一个ASP LinkButton控件,我想知道如何在点击后向后面的代码发送一个值?这件事有可能吗?

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

3 个答案:

答案 0 :(得分:68)

只需添加到CommandArgument参数并在Click处理程序上读取它:

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

然后在您的点击事件中:

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

如果您在任何可绑定控件中使用CommandArgument,也可以在绑定时设置LinkButton参数:

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

答案 1 :(得分:3)

将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

的更多信息

答案 2 :(得分:1)

尝试并检索后面代码中链接按钮的text属性:

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