如何将值从LinkBut​​ton发送到服务器?

时间:2013-01-30 16:51:21

标签: c# asp.net .net linkbutton

我有很多LinkBut​​ton,例如:

<asp:LinkButton runat="server" onclick="cmdCancellaComunicazione_Click">X</asp:LinkButton> 

他们调用相同的服务器方法cmdCancellaComunicazione_Click。但我需要区分它们(传递给服务器,例如,一个值)。

我该怎么办?我知道有CommandArgument,但我不能设置一个值,例如&lt;%= myValue%&gt;

4 个答案:

答案 0 :(得分:2)

您可以使用event-handler的sender参数。将其投放到LinkButton

protected void cmdCancellaComunicazione_Click(Object sender, EventArgs e) 
{
   LinkButton lbtn = (LinkButton) sender;
}

然后您可以使用它CommandNameIDText进行区分。

答案 1 :(得分:1)

您的代码ID上没有指定LinkButton,这似乎很奇怪。

您应该能够为CommandArgument服务器端分配:

yourLinkButton.CommandArgument = yourValue;

然后它将在您的OnClick处理程序中的服务器端读取。

 protected void cmdCancellaComunicazione_Click(object sender, EventArgs e)
 {
     LinkButton btn = (LinkButton)sender;
     if (btn.CommandArgument.Equals(something here))
     {
          // do something
     }
     else
     {
          // do something else
     }
 }

这是在网格中创建还是被绑定的东西?如果是这样,我会为OnDataBinding实施LinkButton事件,例如:

<asp:LinkButton ID="yourLinkButton"
    runat="server" OnDataBinding="yourLinkButton_DataBinding"
    onclick="cmdCancellaComunicazione_Click">X</asp:LinkButton>

服务器端代码(尽可能避免使用内联代码):

protected void protected void lblID_DataBinding(object sender, System.EventArgs e)
{
    LinkButton btn = (LinkButton)sender;
    btn.CommandArgument = yourValue;
}

您的方案中还有其他内容未包含在您的问题中吗?

答案 2 :(得分:0)

在您的方法中,您可以将sender转换为LinkButton并检查其中的值。

答案 3 :(得分:0)

OnCommand在这里是个不错的选择。

protected void ButtonCommand(object sender, CommandEventArgs e)
{
    string theCommand = e.CommandArgument.ToString();
}

只需将OnCommandCommandArgument添加到LinkButton

<asp:LinkButton id="LinkButton1" Text="The Text" OnCommand="ButtonCommand" CommandArgument="YourInfo" runat="server"></asp:LinkButton>