gpt4 book ai didi

c# - 从 GridView RowCommand 中的 CommandArgument 获取实体对象

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:42 26 4
gpt4 key购买 nike

我正在使用 GridView绑定(bind)到 List<Customer> .当RowCommand被某个按钮触发 我希望能够检索当前行的 Customer来自 e.CommandArgument 的对象,像这样:

protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
Customer customer = (Customer)e.CommandArgument;
DoSomething(customer);
}

如何分配 Customer反对 CommandArgument在事件被触发之前?

最佳答案

我不确定您是否真的可以在 CommandArgument 中存储一个复杂的对象,因为它似乎只接受字符串或数值。

我从未真正付诸实践的是将您的对象转换为 Json 字符串并将其用作您的命令参数。

例如,使用 Newtonsoft.Json 和一个名为 FooBar 的虚拟对象

<asp:Button ID="btnOne" runat="server" 
CommandName="Click"
CommandArgument='<%#Newtonsoft.Json.JsonConvert.SerializeObject((FooBar)Container.DataItem) %>'
Text="Click" />

然后当你处理GridView RowCommand点击事件时,你可以反序列化CommandArgument中的对象

FooBar fooBar = Newtonsoft.Json.JsonConvert.DeserializeObject<FooBar>(e.CommandArgument.ToString());

现在这可行了,但我不确定它是否是最佳解决方案。

关于c# - 从 GridView RowCommand 中的 CommandArgument 获取实体对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16355126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com