c# - 在转发器链接按钮中将对象作为 CommandArguement 传递

标签 c# asp.net repeater linkbutton commandargument

我有一个带有客户列表的转发器。每个客户都有一个删除链接按钮。作为链接按钮的一部分,我想按如下方式将客户对象传递给命令参数(其中 Container.DataItem 是客户对象):

<asp:LinkButton  ID="lnkDelete" 
   OnClientClick="return confirmDelete();"  
   OnClick="Customer_OnDelete"  
   CommandArgument="<%# Container.DataItem  %>"  
   CommandName="Delete" 
   runat="server"></asp:LinkButton>

当我这样做时:

    var button = (((LinkButton) sender));

    var customer=  button.CommandArgument;

button.CommandArguement 是一个字符串。我需要所有的对象属性,因为我们正在使用 Nhibernate,所以一切都需要设置,删除记录的 ID 是不够的。我在网上看到有关将逗号分隔的值列表传递到命令参数的示例,但我想避免这样做。这可能吗?

有什么想法吗? 谢谢

最佳答案

在我看来,这种情况下最好的方法是:

  • CommandArgument获取ID
  • 通过 ID 获取客户
  • 删除客户实体

使用 Repeater 事件 OnItemCommand。此事件包含 RepeaterCommandEventArgs。您无法通过这种方式获取 CommandArgument:

protected void myRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
   int customerID= Convert.ToInt32(e.CommandArgument.ToString());
}

在您的 asp:LinkBut​​ton 标签中使用:

CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ID") %>'

关于c# - 在转发器链接按钮中将对象作为 CommandArguement 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12493507/

相关文章:

asp.net - 是否尝试设置此报告中未定义的报告参数 'Name'?

c# - Repeater 中的 LinkBut​​ton 会导致回发,而按钮则不会

c# - Asp.Net MVC Ajax 表单未发布到操作

c# - 在 Azure 批处理中创建自定义目录

c# - Application Insights 将用户名添加到遥测

c# - 隐藏字段值不在 IE 中呈现

c# - 如何手动将项目添加到 Repeater 控件

css - 当我添加转发器时,ASP.net Webforms runat 服务器调用不起作用

c# - ebay预定上市时间不匹配

c# - 在运行时合并 WPF ResourceDictionary