ASP.NET 2.0:Указание экземпляра объекта для ObjectDataSource
-
29-08-2019 - |
Вопрос
Я использую ObjectDataSource для привязки данных к GridView;он работает нормально, за исключением того, что он всегда создает новый объект для использования в качестве источника данных.Я могу выполнить всю настройку просто отлично, но я не могу использовать экземпляр существующего объекта, чтобы указать его в качестве "источника данных".Возможно ли это сделать?Если да, то каким образом?
Если это невозможно, то почему?
Редактировать:Вот суть того, что происходит (изменены типы объектов):На первой странице вы редактируете атрибуты для собаки.Одним из атрибутов является "имеет щенков", и если это верно, то на следующей странице вы указываете имена этих щенков.Что происходит в моем случае, так это то, что эти щенки привязываются не к исходной собаке, а к "новой" собаке.(Намек на то, что моя проблема связана с "собакой женского пола", был случайным.;-) )
Решение
Создайте обработчик события для события ObjectCreating в ObjectDataSource.
Вы можете назначить экземпляр с помощью свойства ObjectDataSourceEventArgs
protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
e.ObjectInstance = myObject;
}
Подключите это событие также к разметке
<asp:ObjectDataSource OnObjectCreating="ObjectDataSource1_ObjectCreating" />
Другие советы
Как я только что обнаружил в моем собственном вопросе здесь элементы, хранящиеся в кэше приложения, будут передаваться сами по себе в качестве ссылки для использования.Вы можете рассмотреть возможность хранения ваших данных там (или, возможно, также в сеансе) и передавать элементы таким образом.