开发者

Remove a Parameter from DetailsView ItemUpdating

开发者 https://www.devze.com 2022-12-20 20:38 出处:网络
Here\'s the setup I have a DetailsView whose DataSource is an ObjectDataSource. The ObjectDataSource has two methods, select and update, that are stored procedures defined in a TableAdapter.

Here's the setup

  • I have a DetailsView whose DataSource is an ObjectDataSource.
  • The ObjectDataSource has two methods, select and update, that are stored procedures defined in a TableAdapter.
  • The Select stored procedure takes 1 parameter--the record id--and returns the fields populated in the DetailsView.
  • The Update stored procedure takes three parameters--the record id, and two data fields.

The select process works fine.

However, when the I submit the update, I get the following error:

ObjectDataSource could not find a non-generic method Update that has parameters: [all 21 table columns]

I am trying to only pass the (3) necessary fields to the Update stored procedure, but the DetailsView is apparently trying to update using all of the fields it received from Select.

I know that I can access the NewValues collection from DetailsViewUpdateEventArgs, but I do开发者_高级运维n't see a way to remove any of the parameters so that they match the definition in the stored procedure, the TableAdapter, and the ObjectDataSource.

Any ideas?


Perhaps this tutorial can provide some insight. As long as you specify your update method and update parameters in your datasource, this should work fine.


I've been able to work around the problem for now by simply removing the unneeded values from the NewValues collection in the DetailsViewUpdateEventArgs. However, this is not optimal, since I've added another point of failure if there are changes to the stored procedure or the form.

I'd still like to know if a TemplateField can be set to ReadOnly the way that a BoundField can (see comments below Aaron's answer).

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号