【发布时间】:2012-09-11 16:34:54
【问题描述】:
我有一个带有客户列表的中继器。针对每个客户都有一个删除链接按钮。作为链接按钮的一部分,我想将客户对象传递给命令参数,如下所示(其中 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 是不够的。我在网上看到了有关将逗号分隔的值列表传递到命令参数中的示例,但希望避免这样做。这可能吗?
有什么想法吗? 谢谢
【问题讨论】:
-
您不能只使用该字符串(我假设这是一个 ID?)并使用它来查询您的数据库以获取您需要的所有元素吗? getCustomerById(int id) 之类的东西?
-
@JaneDoe - 对。这就是在这些场景中通常所做的事情。特别是因为使用 ORM 时,上下文将不会出现,您可以点击“保存”。
标签: c# asp.net repeater linkbutton commandargument