2009-08-11 2 views
2

인사말,
이것이 우리가 ObjectDataSource를 강제로 설정할 수있는 유일한 방법입니까?

1

) 내가 ObjectDataSource를 가정이 자동으로,하지만 다른 ObjectDataSource.Selecting 이벤트는 포스트 백에 발사 될 포스트 백 (에, 단지 첫 번째 요청에 데이터 소스에 바인딩하지만, 또한 포스트 백에 바인딩 ObjectDataSource를을 강제로

A) 그래서 유일한 방법은 수동으로 데이터 바인딩()를 호출하는 것입니다 : 그것은) 아닌가요? DropDownList1 가정


2) DataSourceID 세트 ObjectDataSource1에 후 처음 페이지가 자동 DropDownList1.DataBind() (쪽 후 호출되며, ObjectDataSource1를로드 갖는다. PreRender 이벤트) 검색 한 데이터를 삽입합니다. 우리는 또한 수동으로 DropDownList1.DataBind를 호출하는 경우


A)하지만 (페이지가 처음로드) 무엇을 :

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


ObjectDataSource1 어떻게 든 그 DropDownList1을 알 수 있습니다. DataBind()이 이미 호출되었으므로 자동으로 호출하지 않습니다 DropDownList1.DataBind()? 일반적으로 ObjectDataSource1.Selecting 이벤트가 Page.Prerender event.But 후 해고


B) 어떤를 Page_Load() 내부이라고 DropDownList1.DataBind() 경우?

이 경우 ObjectDataSource1.Selecting 이벤트는 Page.PreRender 이전에 해고 될 것인가? 이 경우 ObjectDataSource1.Selecting 경우에


고맙습니다

답변

3

윌 Page.PreRender 이전에 해고?
예. 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

, 그리고 당신의 상황에서 데이터 바인딩 메소드를 호출 할 때 프리젠 테이션 전에 객체 데이터 소스 선택 이벤트가 발생했습니다

+0

처음 페이지가로드되면 (Page_Load() 내에서) DropDownList1.DataBind()를 호출하면 DropDownList1은 PreRender 이벤트에서 DataBind()를 다시 호출하지 않습니다. – SourceC

+1

예, 도움이 필요하시면 –

+0

고맙습니다. – SourceC

관련 문제