Когда происходит событие DataBinding во время жизненного цикла страницы ASP .NET? - PullRequest
8 голосов
/ 07 августа 2009

Проще говоря, если у меня есть GridView с декларативным набором элементов управления SqlDataSource в качестве источника данных, когда этот источник данных получает свои данные и когда происходит привязка в жизненном цикле страницы?

Ответы [ 2 ]

11 голосов
/ 07 августа 2009

В фазе «preRender» - посмотрите на this

4 голосов
/ 07 августа 2009

Эта статья о цикле страниц довольно хороша.

Например, предположим, что у вас есть GridView, который отображает запись о компании в каждой строке вместе со списком сотрудников компании в элементе управления ListBox. Чтобы заполнить список должностных лиц, необходимо связать элемент управления ListBox с элементом управления источником данных (таким как SqlDataSource), который извлекает данные о сотруднике компании, используя CompanyID в запросе.

Если привязка данных элемента управления ListBox свойства, такие как DataSourceID и DataMember, установлены декларативно, Элемент управления ListBox попытается привязать к его источник данных во время содержания Событие DataBinding строки. Тем не менее Поле CompanyID строки не содержать значение до GridView Происходит событие RowDataBound элемента управления. В этом случае дочерний контроль ( Элемент управления ListBox) привязан перед содержащий контроль (GridView контроль), поэтому их этапы привязки данных не синхронизированы.

Чтобы избежать этого условия, поместите данные контроль источника для элемента управления ListBox в том же элементе шаблона, что и Элемент управления ListBox, а не установить свойства привязки данных ListBox декларативно. Вместо этого установите они программно во время выполнения во время события RowDataBound, так что элемент управления ListBox не привязывается к его данные до идентификатора компании информация доступна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...