有個 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
1.如果畫面有好幾個控制項,執行控制項的先後順序為何 ?
原則上應該是由上而下,但是根據控制項上設定的屬性,可能會跳去先載入別的項目
2.如果控制項如 DETAILSVIEW 中的 TEMPLATE 內設有控制項,該子控制項是否也會執行 DATABIND() 方法 ?
要看你 TEMPLATE 使用的是甚麼控制項,是否提供 DATABIND() 方法
1.你已經找到Page的生命週期了.你應該可以找到Control的生命周期?原則上應該!!寫程式不可以應該,不然結果就會錯誤.
2.所有的屬性都支援DataBind()
執行的順序 開啟aspx 看網頁架構中的控制項的順序
而DETAILSVIEW 中的 TEMPLATE 內設有控制項. 若是裡面的控制像有設定如 <%# Eval("欄位名稱") %>...那當然一定會Bind Data.