ASP.NET 2.0: указание экземпляра объекта для ObjectDataSource - PullRequest
3 голосов
/ 29 декабря 2008

Я использую ObjectDataSource для привязки данных к GridView; он работает нормально, за исключением того, что он всегда создает новый объект для использования в качестве источника данных. Я могу сделать все настройки просто отлично, но я не могу использовать экземпляр существующего объекта, чтобы указать в качестве «источника данных» для него. Можно ли сделать это? Если так, то как?

Если это невозможно, почему?

РЕДАКТИРОВАТЬ: Вот суть того, что происходит (типы объектов изменены): На первой странице вы редактируете атрибуты для собаки. Одним из атрибутов является «имеет щенков», и если это правда, на следующей странице вы указываете имена этих щенков. В моем случае происходит то, что эти щенки связаны не с оригинальной собакой, а с «новой» собакой. (Подразумевалось, что моя проблема - «сука», была случайной. ;-))

Ответы [ 2 ]

8 голосов
/ 29 декабря 2008

Создайте обработчик события для события ObjectCreating на ObjectDataSource.

Вы можете назначить экземпляр использованию свойства ObjectDataSourceEventArgs

protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
    e.ObjectInstance = myObject;
}

Подключите это событие и в разметке

<asp:ObjectDataSource OnObjectCreating="ObjectDataSource1_ObjectCreating" />
0 голосов
/ 29 декабря 2008

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

...