Проще говоря, если у меня есть GridView с декларативным набором элементов управления SqlDataSource в качестве источника данных, когда этот источник данных получает свои данные и когда происходит привязка в жизненном цикле страницы?
В фазе «preRender» - посмотрите на this
Эта статья о цикле страниц довольно хороша.
Например, предположим, что у вас есть GridView, который отображает запись о компании в каждой строке вместе со списком сотрудников компании в элементе управления ListBox. Чтобы заполнить список должностных лиц, необходимо связать элемент управления ListBox с элементом управления источником данных (таким как SqlDataSource), который извлекает данные о сотруднике компании, используя CompanyID в запросе. Если привязка данных элемента управления ListBox свойства, такие как DataSourceID и DataMember, установлены декларативно, Элемент управления ListBox попытается привязать к его источник данных во время содержания Событие DataBinding строки. Тем не менее Поле CompanyID строки не содержать значение до GridView Происходит событие RowDataBound элемента управления. В этом случае дочерний контроль ( Элемент управления ListBox) привязан перед содержащий контроль (GridView контроль), поэтому их этапы привязки данных не синхронизированы. Чтобы избежать этого условия, поместите данные контроль источника для элемента управления ListBox в том же элементе шаблона, что и Элемент управления ListBox, а не установить свойства привязки данных ListBox декларативно. Вместо этого установите они программно во время выполнения во время события RowDataBound, так что элемент управления ListBox не привязывается к его данные до идентификатора компании информация доступна.
Например, предположим, что у вас есть GridView, который отображает запись о компании в каждой строке вместе со списком сотрудников компании в элементе управления ListBox. Чтобы заполнить список должностных лиц, необходимо связать элемент управления ListBox с элементом управления источником данных (таким как SqlDataSource), который извлекает данные о сотруднике компании, используя CompanyID в запросе.
Если привязка данных элемента управления ListBox свойства, такие как DataSourceID и DataMember, установлены декларативно, Элемент управления ListBox попытается привязать к его источник данных во время содержания Событие DataBinding строки. Тем не менее Поле CompanyID строки не содержать значение до GridView Происходит событие RowDataBound элемента управления. В этом случае дочерний контроль ( Элемент управления ListBox) привязан перед содержащий контроль (GridView контроль), поэтому их этапы привязки данных не синхронизированы.
Чтобы избежать этого условия, поместите данные контроль источника для элемента управления ListBox в том же элементе шаблона, что и Элемент управления ListBox, а не установить свойства привязки данных ListBox декларативно. Вместо этого установите они программно во время выполнения во время события RowDataBound, так что элемент управления ListBox не привязывается к его данные до идентификатора компании информация доступна.