C# 为自定义GridView设置数据键

C# 为自定义GridView设置数据键,c#,asp.net,gridview,sqldatasource,C#,Asp.net,Gridview,Sqldatasource,我有一个GridView,它由使用它的每个页面自定义。我遇到的问题是,我无法显式地设置数据键是什么(因为每个页面都有不同的数据键——有些页面甚至没有数据键) 我知道我可以创建一个可公开访问的数组,每个页面都可以更改该数组并将其设置为DataKeyName,但这不适用于没有数据键的情况(不能将空数组用于DataKeyName),此外,这不是一种更好的做法 我的GridView用作SqlDataSource。我需要DataKeys的原因是DeleteCommand使用文本DeleteCommandT

我有一个GridView,它由使用它的每个页面自定义。我遇到的问题是,我无法显式地设置数据键是什么(因为每个页面都有不同的数据键——有些页面甚至没有数据键)

我知道我可以创建一个可公开访问的数组,每个页面都可以更改该数组并将其设置为DataKeyName,但这不适用于没有数据键的情况(不能将空数组用于DataKeyName),此外,这不是一种更好的做法

我的GridView用作SqlDataSource。我需要DataKeys的原因是DeleteCommand使用文本DeleteCommandType(而不是SP——更喜欢这种方式),我需要该行的唯一标识符

当我实际将PrimaryKey行设置为可见绑定字段时,我可以获得该键名,但因为它是Guid,所以我不希望这样


我正在寻找一种方法,将DataKeys设置为PrimaryKey行(我的Guid),而不说明它是哪一行的名称。有办法做到这一点吗?如果没有,解决此问题的更好方法是什么?

或者,您可以将值存储在
隐藏字段中,并在需要时使用隐藏字段。

我尝试过使用隐藏字段,但是,如果visible属性设置为false,则在运行时无法访问该值。为什么将其设置为visible false?用户根本看不到这一点。您可以将此列的宽度设置为0px。其次,如果将column visible设置为false,它将不会渲染,并且您可以在回发时获取值。我尝试将宽度设置为0px,但这似乎不起作用,可能是我自己的原因,但添加了一个cssclass来设置Display=“None”起到了作用。谢谢你的帮助和指导!这应该可以做到。