iT邦幫忙

0

asp.net page 生命週期

有個 ASP.NET 的問題想請教,以下是 PAGE 生命週期的事件
PreInit
Init
InitComplete
PreLoad
Load
Control events
LoadComplete
PreRender
SaveStateComplete
Render

在 PreRender 事件中,如果 DATABIND 控制項有設定 DATASOURCE_ID,則該事件會執行控制項的 DATABIND() 方法,我的疑問有幾點整理如下
1.如果畫面有好幾個控制項,執行控制項的先後順序為何 ?
2.如果控制項如 DETAILSVIEW 中的 TEMPLATE 內設有控制項,該子控制項是否也會執行 DATABIND() 方法 ?

FRANKIE 2009/06/01

10
pcboy
iT邦高手 1 級 ‧ 2009-06-02 08:33:54
最佳解答

1.如果畫面有好幾個控制項,執行控制項的先後順序為何 ?
原則上應該是由上而下,但是根據控制項上設定的屬性,可能會跳去先載入別的項目

2.如果控制項如 DETAILSVIEW 中的 TEMPLATE 內設有控制項,該子控制項是否也會執行 DATABIND() 方法 ?
要看你 TEMPLATE 使用的是甚麼控制項,是否提供 DATABIND() 方法

8
pantc328
iT邦研究生 1 級 ‧ 2009-06-02 16:46:32

1.你已經找到Page的生命週期了.你應該可以找到Control的生命周期?原則上應該!!寫程式不可以應該,不然結果就會錯誤.
2.所有的屬性都支援DataBind()

6
markshu
iT邦好手 1 級 ‧ 2009-06-14 04:19:53

執行的順序 開啟aspx 看網頁架構中的控制項的順序
而DETAILSVIEW 中的 TEMPLATE 內設有控制項. 若是裡面的控制像有設定如 <%# Eval("欄位名稱") %>...那當然一定會Bind Data.

我要發表回答

立即登入回答