загрузка страницы () или инициализация страницы () - PullRequest
14 голосов
/ 02 июня 2009

В asp.net, когда вы связываете свои gridviews? при загрузке страницы () или инициализации страницы () .... почему?

Ответы [ 2 ]

12 голосов
/ 02 июня 2009

Обычно вы должны связываться с или после Load (). Событие Init () предназначено для того, чтобы позволить вам создавать любые динамически созданные элементы управления до возникновения привязки, чтобы они существовали, когда необходимо выполнить привязку. Load () - не единственная опция, однако ... если вам необходимо по какой-либо причине отложить привязку для элемента управления, вы можете также выполнить привязку в событии PreRender (). Кроме того, можно выполнить дальнейшую настройку в Load (), вызвать метод DataBind () страниц и обработать события привязки страницы, чтобы связать их еще более структурированным способом, если вам нужно.

4 голосов
/ 02 июня 2009

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

Даже для сложных сценариев привязки данных Page_Init будет не подходящим местом, потому что элементы управления контейнером, такие как GridView, загружают своих потомков только во время события Page_Load. Вам нужно пойти дальше по жизненному циклу, чтобы получить доступ к этим детям.

Однако в моем случае ответом будет «ни один». Это потому, что я никогда не связываю данные непосредственно с элементом управления в Page_Load. Вместо этого я предпочитаю иметь отдельный метод, который выполняет привязку данных и может вызываться из Page_Load или любой другой функции, если мне нужно выполнить повторную привязку после обратной передачи.

...