Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ObjectDataSource и Delete метод.

279
04 октября 2009 года
bave
456 / / 07.03.2004
Доброго времени суток,
столкнулся с такой проблемой - есть ObjectDataSource и указан метод Delete бизнес-класса с одним параметром.

Код:
<asp:ObjectDataSource ID="odEducationOrganizations" runat="server" EnablePaging="True"
                    OldValuesParameterFormatString="original_{0}" SelectCountMethod="GetCountEducationOrganization"
                    SelectMethod="GetEducationOrganizations" TypeName="SmsDatebookInfo.Business.EducationOrganizations"
                    &#111;&#110;ObjectCreating="odEducationOrganizations_ObjectCreating"
                    &#111;&#110;Selecting="odEducationOrganizations_Selecting"
                    InsertMethod="AddEducationOrganization"
                    DeleteMethod="DeleteEducationOrganization"
                    &#111;&#110;inserting="odEducationOrganizations_Inserting">
                    <DeleteParameters>
                        <asp:Parameter Name="educationOrganizationId" Type="UInt64" />
                    </DeleteParameters>
                    <SelectParameters>
                        <asp:SessionParameter Name="administrativeUnitId"
                            SessionField="DefaultAdministrativeUnitId" Type="UInt64" />
                    </SelectParameters>
                    <InsertParameters>
                        <asp:Parameter Name="administrativeUnitId" Type="UInt64" />
                        <asp:Parameter Name="name" Type="String" />
                        <asp:Parameter Name="shortName" Type="String" />
                        <asp:Parameter Name="address" Type="String" />
                    </InsertParameters>
                </asp:ObjectDataSource>


И при попытке удалить запись получаю:

ObjectDataSource 'odEducationOrganizations' could not find a non-generic method 'DeleteEducationOrganization' that has parameters: educationOrganizationId, original_Id, original_AdministrativeUnitId

С чего вдруг в число параметров сами сабой добавляются поля, которые в гриде указаны как ключевые, если в списке параметров их нет?!

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

Почему ObjectDataSource вдруг начал искать метод с полями original_Id, original_AdministrativeUnitId, если они в параметрах не указываются?
5
04 октября 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: bave

С чего вдруг в число параметров сами сабой добавляются поля, которые в гриде указаны как ключевые, если в списке параметров их нет?!

На то они и ключевые - с их помощью отрабатывают Delete и Update методы.

Цитата: bave

Почему ObjectDataSource вдруг начал искать метод с полями original_Id, original_AdministrativeUnitId, если они в параметрах не указываются?

Они подразумеваются при указании атрибута:

 
Код:
<asp:ObjectDataSource
                    [COLOR=Red]OldValuesParameterFormatString="original_{0}"  [/COLOR]/>
Уберите атрибут и он их не будет подставлять.


З.Ы. Кстати, использование UInt64 не очень хорошая практика: этот тип не является CTS-совместимым.
279
04 октября 2009 года
bave
456 / / 07.03.2004
Если убирать OldValuesParameterFormatString="original_{0}", то он все равно требует эти параметры только с другими именами Id и AdministrativeUnitId соответственно... Потому что если убирать это свойство - исользуется значение по умолчанию для этого свойства {0}, а если в это свйство пустую строку записать, то он просит параметры без имени.... Как то по другому должно это выключаться...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог