Удалить параметр из DetailsView ItemUpdating - PullRequest
1 голос
/ 23 февраля 2010

Вот настройки

  • У меня есть DetailsView, чье DataSource является ObjectDataSource.
  • У ObjectDataSource есть два метода, select и update, которые являются хранимыми процедурами, определенными в TableAdapter.
  • Хранимая процедура Select принимает 1 параметр - идентификатор записи - и возвращает поля, заполненные в DetailsView.
  • Хранимая процедура Update принимает три параметра - идентификатор записи и два поля данных.

Процесс выбора работает нормально.

Однако, когда я отправляю обновление, я получаю следующую ошибку:

ObjectDataSource не удалось найти неуниверсальный метод Update, который имеет параметры: [все 21 столбец таблицы]

Я пытаюсь передать только (3) необходимые поля в хранимую процедуру Update, но DetailsView, видимо, пытается обновить, используя все поля, полученные из Select.

Я знаю, что могу получить доступ к коллекции NewValues из DetailsViewUpdateEventArgs, но я не вижу способа удалить любого параметра, чтобы он соответствовал определению в хранимой процедуре TableAdapter и ObjectDataSource.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2010

Мне удалось обойти эту проблему, просто удалив ненужные значения из коллекции NewValues в DetailsViewUpdateEventArgs. Однако это не оптимально, поскольку я добавил еще одну точку отказа, если есть изменения в хранимой процедуре или форме.

Я все еще хотел бы знать, можно ли установить TemplateField на ReadOnly так, как BoundField (см. Комментарии под ответом Аарона).

0 голосов
/ 23 февраля 2010

Возможно этот урок может дать некоторое представление. Пока вы указываете свой метод обновления и параметры обновления в своем источнике данных, это должно работать нормально.

...