Вот установкаУдаление параметра из DetailsView ItemUpdating
- У меня есть
DetailsView
которогоDataSource
являетсяObjectDataSource
. ObjectDataSource
имеет два метода, выбирает и обновляет, которые являются хранимыми процедурами, определенными вTableAdapter
.- Хранимая процедура принимает 1 параметр - идентификатор записи - и возвращает поля, заполненные в
DetailsView
. - Хранимая процедура
Update
принимает три параметра - идентификатор записи и два поля данных.
Процесс выбора отлично работает.
Однако, когда я представить обновление, я получаю следующее сообщение об ошибке:
ObjectDataSource
could not find a non-generic methodUpdate
that has parameters: [all 21 table columns]
Я пытаюсь только передать (3) необходимые поля для хранимой процедуры Update
, но DetailsView
, видимо, пытается для обновления, используя все поля, полученные от Select
.
Я знаю, что я могу получить доступ к NewValues
коллекции от DetailsViewUpdateEventArgs
, но я не вижу способ удалить любого из параметров так, чтобы они соответствовали определению в хранимой процедуре, тем TableAdapter
и ObjectDataSource
.
Любые идеи?
Хорошо, мы направляемся в правильном направлении. В учебнике, с которым связан Aaron, я нашел следующее: «Чтобы ObjectDataSource вызывал перегрузку [correct] UpdateProduct ..., нам нужно ограничить GridView доступными для редактирования полями только для ProductName и UnitPrice. выполняется путем удаления других BoundFields и CheckBoxFields, установив для этих других полей свойство ReadOnly значение true или некоторую комбинацию из двух. " – dneaster3
Теперь проблема в том, что все поля в моем DetailsView являются TemplateFields, и у них нет свойства ReadOnly. Просто удаление EditItemTemplate не сработало, и я не могу в этом случае полностью удалить поля во время DetailsViewMode.Edit. Поэтому, хотя я больше понимаю процесс, я до сих пор не убедил .NET использовать правильный метод обновления. – dneaster3