从DetailsView ItemUpdating中删除参数

时间:2010-02-23 16:20:29

标签: asp.net objectdatasource detailsview tableadapter

这是设置

  • 我有DetailsViewDataSourceObjectDataSource
  • ObjectDataSource有两个方法,select和update,它们是TableAdapter中定义的存储过程。
  • Select存储过程采用1个参数 - 记录ID - 并返回DetailsView中填充的字段。
  • Update存储过程有三个参数 - 记录ID和两个数据字段。

选择过程正常。

但是,当我提交更新时,我收到以下错误:

  

ObjectDataSource找不到包含参数的非泛型方法Update:[所有21个表格列]

我尝试仅将(3)必填字段传递给Update存储过程,但DetailsView显然正在尝试使用从Select收到的所有字段进行更新。

我知道我可以从NewValues访问DetailsViewUpdateEventArgs集合,但我看不到删除任何参数的方法,以便它们与定义匹配在存储过程中,TableAdapterObjectDataSource

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

或许this tutorial可以提供一些见解。只要您在数据源中指定更新方法和更新参数,这应该可以正常工作。

答案 1 :(得分:0)

我现在只需从NewValues中删除DetailsViewUpdateEventArgs集合中不需要的值即可解决此问题。但是,这不是最佳选择,因为如果存储过程或表单发生更改,我会添加另一个故障点。

我仍然想知道TemplateField是否可以设置为ReadOnly BoundField的方式(参见Aaron回答下面的评论)。