删除参数这里的设置从DetailsView控件ItemUpdating
- 我有一个
DetailsView
,其DataSource
是ObjectDataSource
。 ObjectDataSource
有两种方法,select和update,它们是在TableAdapter
中定义的存储过程。Select
存储过程需要1个参数 - 记录ID - 并返回DetailsView
中填充的字段。Update
存储过程需要三个参数 - 记录标识和两个数据字段。
选择过程正常。
然而,当我提交了更新,我得到以下错误:
ObjectDataSource
could not find a non-generic methodUpdate
that has parameters: [all 21 table columns]
我想只传递给Update
存储过程(3)必要的字段,但DetailsView
显然是想使用从Select
收到的所有字段进行更新。
我知道,我可以从DetailsViewUpdateEventArgs
访问NewValues
收藏,但我没有看到一个方法来去除任何的参数,以便它们匹配在存储过程的定义,TableAdapter
和ObjectDataSource
。
任何想法?
好的,我们正朝着正确的方向前进。在Aaron链接到的教程中,我发现: “为了确保ObjectDataSource调用[正确] UpdateProduct重载...我们需要限制GridView具有仅用于ProductName和UnitPrice的可编辑字段。通过删除其他BoundFields和CheckBoxFields,通过将其他字段的ReadOnly属性设置为true或通过两者的某种组合来完成。“ – dneaster3 2010-02-23 17:27:24
现在的问题是,我的DetailsView中的所有字段都是TemplateFields,并且它们没有ReadOnly属性。只是删除EditItemTemplate不起作用,在这种情况下,我不能在DetailsViewMode.Edit中完全删除这些字段。所以虽然我对这个过程有了更多的了解,但我还是没有说服.NET使用正确的更新方法。 – dneaster3 2010-02-23 17:30:58