C# DataKeyName在ASP.NET GridView中作为不需要的更新参数出现
我在gridview标记(简化)中定义了以下内容:C# DataKeyName在ASP.NET GridView中作为不需要的更新参数出现,c#,asp.net,visual-studio-2008,gridview,parameters,C#,Asp.net,Visual Studio 2008,Gridview,Parameters,我在gridview标记(简化)中定义了以下内容: 然后,我将数据源的更新参数定义为: <UpdateParameters> <asp:Parameter Name="ID" Type="Int32" /> <asp:Parameter Name="IsJustified" Type="Boolean" />
然后,我将数据源的更新参数定义为:
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="IsJustified" Type="Boolean" />
<asp:Parameter Name="Comment" Type="String" />
<asp:Parameter Name="LastEditor" Type="String" />
</UpdateParameters>
但在尝试更新时,我得到一个错误,即
找不到非泛型方法
具有以下参数的“更新”:ID,
isjustized,Comment,LastEditor,
入口日期,
雇员编号
我可以避免DataKey下的字段作为方法的参数出现吗
注意:我可以通过简单地修改我的方法的参数并添加来自Gridview的额外值来解决这个问题,但最好能有一种方法避免这些值被发送
提前感谢,EtonB.我认为没有解决办法。微软意识到了这个问题,并表示将在下一版本中解决。查看此处了解更多信息:。数据键名称代表您正在更新的数据的主键,因此我认为您不能/应该避免在更新方法中使用它们。如果ID确实是主键,那么它应该列在数据键名称下。否则,更新方法应将EntryDate和EmployeeNumber作为参数,而不是ID。您可以使用ObjectDataSource更新事件删除它们
void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
e.InputParameters.Remove("Type_ID");
e.InputParameters.Remove("Document_ID");
e.InputParameters.Remove("State_ID");
}
我使用数据键进行查找,但在更新过程中不需要它们
void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
e.InputParameters.Remove("Type_ID");
e.InputParameters.Remove("Document_ID");
e.InputParameters.Remove("State_ID");
}