gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 21:52:47 24 4
gpt4 key购买 nike

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

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

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

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

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

出于某种原因,出现一条错误消息,指出上面的代码行中需要一个方法名称,但我看不出哪里出错了。我不太熟悉使用 EventHandler 对象,因此非常感谢任何指导。

最佳答案

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

您可以尝试使用 lambda 表达式:

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

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

关于c# - 在C#中为动态生成的按钮添加点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34439703/

24 4 0
文章推荐: c# - 使用 Bouncy CaSTLe c# 创建 CRL 文件
文章推荐: mysql - 一个 SQL 语句中的递归和非递归 ACL
文章推荐: PHP( Grocery 增删改查)| Mysql在两个数字之间生成一个唯一的随机数
文章推荐: c# - 如何将 List 转换为 List