Objectdatasource

  • Автор темы DZX
  • Дата начала
D
#1
Необходимо разъяснение:
ObjectDataSource работает как связка между GridView и неким бизнес объектом. Update, select и delete проходят как ожидается с Insert загвоздка - если завести в таблице кнопку добавления - никакой реакции, если вызывать в ручную insert у ObjectDataSource - ругается типа не может создать объект для передачи закрепленному методу. :) Для DetailView и FormView insert отрабатывает, а как же с GRidView - можно ли, может где подтолкнуть надо? Help!
 
D
#2
Есть GRidView он стандартный, к нему цепится такой ObjectDataSource:

Код:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select" TypeName="Test_dal.bol" DataObjectTypeName="Test_dal.DBRecord" UpdateMethod="Update" 
onupdated="ObjectDataSource1_Updated" ConflictDetection="CompareAllValues" DeleteMethod="Delete" InsertMethod="Insert" OldValuesParameterFormatString="old_{0}" oninserted="ObjectDataSource1_Inserted">
</asp:ObjectDataSource>
Привязан бизнес объект Test_dal.bol, запись базы данных
определена сущностью Test_dal.DBRecord

В bol вызывается такая функция базового класса
где T generetic принимающий DBRecord
BoResult - возвращает признак успешности выполнения
операции в DAL и если есть сообщение об ошибке.
Операцию по вставке умеет делать сам DBRecord

Код:
public BoResult Insert(T rec)
{
BoResult r = new BoResult(!rec.Insert());
if (r.WasError)
r.ErrorMessage = rec.ErrorMessage;
return r;
}
Для DBRecord определены конструкторы без
параметров и с входным параметром IDataRecord.

Какая еще нужна информация?
 
A

alexsid

#5
Однозначно МОЖНО!

Только я не помню как этот делал.
Вроде бы наследовали от ObjectDataSource свой...