2011-01-13 2 views
0

У меня есть унаследованное решение, где все DataSource s определены в разметке для всех .aspx-страниц. Проблема, с которой я сталкиваюсь, заключается в том, что файл DataSource получает экземпляр несколько раз, так как он используется на странице, управление ... Я хочу, чтобы NInject обрабатывал экземпляр DataSource, так что этого не происходит. У меня есть эта часть для работы, но когда DataSource определен в коде, а не в разметке, свойство Page не установлено на DataSource, знает ли кто-нибудь почему?Разница при объявлении DataSource в разметке по сравнению с кодом?

Простым решением является установка свойства Page в базовом классе или что-то в этом роде, но я думаю, что свойство должно быть там и хотеть знать, почему.

ответ

1

После этого вы должны позвонить DataBind().

WebControl1.DataSource = something; 
WebControl1.DataBind(); 
+0

Благодарим за ответ, вероятно, это полезно для других, но это не то, о чем я просил. Я спросил, почему свойство 'Page' не задано. –

+0

Это, вероятно, было частью решения, я не уверен на 100%, как я его решил, но я мог использовать фактический «DataSource» при установке свойства DataSource вместо одного метода в «DataSource». –

0

Возможно, это связано с моментом создания экземпляра на жизненном цикле страницы? Можете ли вы отслеживать (отлаживать) экземпляр в коде позади? Какой обратный вызов вы используете в коде? Если вы используете код управления позади, свойство страницы еще не установлено. Поэтому выберите более поздний обратный вызов - после того, как элемент управления уже был добавлен на какую-либо страницу.

+0

Я попытался создать экземпляр элемента управления в 'PreInit' страницы и его на страницу' Control', но это не помогло. В итоге я написал свой собственный базовый класс DataSource, который переопределяет свойство 'Page' и просматривает его из текущего' HttpContext'. –

Смежные вопросы