在C#中为动态生成的按钮添加一个点击事件

本文关键字:一个 事件 添加 按钮 动态 | 更新日期: 2023-09-27 18:27:56

所以我目前正在尝试让一个简单的购物车在网站上工作。基本上,当项目从您的购物车显示在购物车页面上时,面板中会填充与每个项目相关的图像、标签和按钮。

我想做的是为每个创建的按钮分配一个点击事件,该按钮调用一个通用方法来从列表中删除该项。以下是从项目列表中删除项目的代码:

public void Remove(CartItem item)
{ 
    ArrayList remove = (ArrayList)Session["ShoppingBasket"];
    remove.Remove(item);
}

这是我试图为生成的每个按钮编写的事件处理程序:

btnRemove.Click += new EventHandler(Remove(item));

出于某种原因,出现了一条错误消息,说上面的代码行中需要一个方法名,我看不出哪里出了问题。我不太熟悉使用EventHandler对象,所以如果有任何指导,我们将不胜感激。

在C#中为动态生成的按钮添加一个点击事件

EventHandler应该与事件的签名匹配。不能只将任何方法作为EventHandler传递。您需要一个与事件签名相匹配的适当空隙。

您可以尝试lambda表达式:

btnRemove.Click += (_sender, _args) => Remove(item);

您可以使用单独的方法,但由于需要将item传递给函数Remove,因此需要使用来使用lambda表达式,以便能够在上下文中访问item

试试这个

b删除。单击+=(e,s)=>删除(项目)