如何在c# asp.net中处理多个Link按钮的单个事件

本文关键字:Link 按钮 事件 单个 处理 asp net | 更新日期: 2023-09-27 18:14:28

我有A|B|C|D.....网页表单上的Z链接按钮。现在我必须在代码后面添加单个事件来处理所有链接按钮。如何使用c# asp.net

如何在c# asp.net中处理多个Link按钮的单个事件

如果您不是指动态设置事件,您只需在OnClick事件中为所有按钮设置相同的方法:

<asp:LinkButton id="btnA" Text="A" runat="server" OnClick="myMethod" />
<asp:LinkButton id="btnB" Text="B" runat="server" OnClick="myMethod" />

后面的代码:

potected void myMethod(object sender, EventArgs e)
{
     ....
}

这应该工作…

此外,而不是OnClick,你可以设置CommandName和额外设置CommandArgument为每个LinkButton,传递不同的参数。然后,在方法签名后面的代码中,你应该设置commanddeventargs而不是EventArgs。

在Page_Init中关联这些按钮或linkbutton的事件处理程序,并检查发出请求的发送方控件

protected void Page_Init()
            {
                LinkButton1.Click += Link_Click;
                LinkButton2.Click += Link_Click;
                LinkButton3.Click += Link_Click;
                LinkButton4.Click += Link_Click;
            }

根据您的回发功能控件强制转换该控件,该控件是button还是linkbutton,并检查该控件的某些控件属性以识别该控件。

 private void Link_Click(object sender, EventArgs e)
    {
        LinkButton button = sender as LinkButton;
        if (button.Text == "LinkButton1")
        {
            Response.Write("<script>alert('link1');</script>");
        }
        else if (button.Text == "LinkButton2")
        {
            Response.Write("<script>alert('link2');</script>");
        }
    }

您可以检查控件为:

Button button = (Button)sender;
if(button is Button1)
{
..
}

使用like:

button1.Click += new EventHandler(Button_Click);
button2.Click += new EventHandler(Button_Click);
button3.Click += new EventHandler(Button_Click);
......

将所有事件订阅到单个事件处理程序。您可以在事件处理程序中获取已单击的按钮:-

private void Button_Click(object sender, System.EventArgs e)
{
    Button b = (Button) sender;
    Label1.Text = b.ID;
 }