2009-08-11 7 views
2

Salutations,Est-ce la seule façon de forcer ObjectDataSource à ...?


1) Je suppose ObjectDataSource se fixe automatiquement à la source de données uniquement sur la première demande, mais pas sur postbacks (autre ObjectDataSource.Selecting événement serait tiré sur postbacks aussi, mais il n'est pas):

A) donc, seule façon de forcer ObjectDataSource à lier aussi postbacks est en appelant manuellement DataBind()?


2) En supposant DropDownList1 a DataSourceID ensemble à ObjectDataSource1, puis la première page de temps est chargé, ObjectDataSource1 appellera automatiquement DropDownList1.DataBind() (après page. PreRender event) et insérer les données récupérées.


A) Mais si nous aussi appeler manuellement DropDownList1.DataBind() lorsque la page est d'abord chargé:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) DropDownList1.DataBind(); 
} 


Will ObjectDataSource1 remarquez une certaine façon que DropDownList1. DataBind() a déjà été appelé et n'appelle donc pas automatiquement DropDownList1.DataBind()?


B) Normalement ObjectDataSource1.Selecting événement est déclenché après Page.Prerender event.But si DropDownList1.DataBind() est appelé à l'intérieur Page_Load()?

Est-ce dans ce cas ObjectDataSource1.Selecting événement est tiré avant Page.PreRender?


Thanx

Répondre

3

Will dans ce cas, l'événement ObjectDataSource1.Selecting être tiré avant Page.PreRender?
Oui, il est appelé avant Page.PreRender.
Raison: Chaque donnée contrôle lié dont DataSourceID propriété est définie appelle sa méthode DataBind en cas de prerender,

contrôle du cycle de vie de la page http://msdn.microsoft.com/en-us/library/ms178472.aspx

http://dotnetshoutout.com/Data-Binding-Events-for-Data-Bound-Controls-in-ASPNet

Depuis l'événement de chargement est appelée avant prerender , et quand appelez la méthode de databind alors dans votre situation objectdatasource événement sélectionné tiré avant prerender

+0

Je suppose que si la première page de temps est chargée nous m appelez régulièrement DropDownList1.DataBind() (à l'intérieur de Page_Load()), alors DropDownList1 n'appellera plus DataBind() dans l'événement PreRender ?! – SourceC

+1

oui, il ne s'appelle pas –

+0

merci pour votre aide – SourceC

Questions connexes