2

ご挨拶、


1) ObjectDataSource は、最初のリクエストでのみデータ ソースに自動的にバインドされ、ポストバックではバインドされないと仮定ます (それ以外の場合、 ObjectDataSource.Selectingイベントはポストバックでも発生しますが、そうではありません)。

A) したがって、ObjectDataSourceを強制的にポストバックにもバインドさせる唯一の方法は、手動でDataBind()を呼び出すことですか?


2) DropDownList1DataSourceIDがObjectDataSource1に設定されていると仮定すると、最初にページが読み込まれると、ObjectDataSource1は自動的にDropDownList1.DataBind()を呼び出し ( Page.PreRenderイベントの後)、取得したデータを挿入します。


A) しかし、ページが最初にロードされたときにDropDownList1.DataBind()も手動で呼び出すとどうなるでしょうか。

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


ObjectDataSource1は、 DropDownList1.DataBind()が既に呼び出されていることに何らかの形で気付くので、自動的にDropDownList1.DataBind()を呼び出さないでしょうか?


B) 通常、 ObjectDataSource1.SelectingイベントはPage.Prerenderイベントの後に発生します。しかし、DropDownList1.DataBind()がPage_Load()内で呼び出された場合

その場合、ObjectDataSource1.SelectingイベントはPage.PreRenderの前に発生しますか?


ありがとう

4

1 に答える 1

3

その場合、Page.PreRender の前に ObjectDataSource1.Selecting イベントが発生しますか?
はい、Page.PreRender の前に呼び出されます。
理由: DataSourceID プロパティが設定されている各データ バインド コントロールは、prerender イベントでその DataBind メソッドを呼び出します。

ページのライフ サイクルを確認してください http://msdn.microsoft.com/en-us/library/ms178472.aspx

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

load イベントは prerender の前に呼び出されるため、 databind メソッドを呼び出すと、状況では objectdatasource selected イベントが prerender の前に発生します

于 2009-08-12T08:08:56.137 に答える