用戶端請求頁面
1、預初始化(onpreinit)
2、初始化(oninit)
3、完成初始化(oninitcomplete)
4、載入viewstate(loadviewstate)
5、處理回送資料(ipostbackdatahandler)
6、page_onpreload—>page_onload
7、回發更改通知(raisepostdatachangedevent)
8、處理回發事件(raisepostbackevent)
9、page_onloadcomplete
10、預呈現(onprerender)
11、完成預呈現(onprerendercomplete)
12、儲存controlstate(savecontrolstate)
13、儲存viewstate(saveviewstate)
14、呈現(render)
15、page_unload
onpreinit:在初始化頁面oninit事件前觸發。在這個階段裡,可以進行定義站點主題(theme)或加載站點個性化所需要的資料資訊等操作。
oninitcomplete:完成初始化頁面oninit事件後觸發。
onpreload:在加載頁面onload事件前觸發。
onloadcomplete:完成頁面加載onload事件後觸發。
onprerendercomplete:在完成預呈現onprerender事件後觸發。這是完成頁面呈現的最後一道關卡,在此之後,頁面将無法再進行任何呈現上的改動。
savecontrolstate:儲存控件狀态controlstate。controlstate是asp.net2.0控件新增的一個屬性,類似viewstate作用,但它們差別在于controlstate用于儲存更加重要的控件狀态資訊,以保證在禁用viewstate的情況下還可以對控件狀态進行讀寫操作。
增加對頁面header的控制:
system.web.ui.page類新增加了header屬性,用于對html頁面頭區域裡資料的操作。通過對header屬性的跟蹤,可以發現,header屬性儲存着一個實作ipageheader接口的對象(該對象有linkedstylesheets、metadata、stylesheet和title四個屬性),實際上正是通過這個對象實作對html頁面頭區域裡資料的操作的。
例如:
<script runat="server">
void page_load(object sender, system.eventargs e)
{
this.header.metadata.add("author", "brooks");
}
</script> 其運作結果為:
<html>
<head> <title>untitled page</title>
<meta name="author" content="brooks" />
</head>定義表單中的預設按鈕:
在asp.net1.0中,我就為了設定表單中的預設按鈕而一籌莫展。幸好asp.net2.0把這個功能補上了,現在可以非常友善的設定表單中的預設按鈕了。
<%@ page language="c#" %>
void button1_click(object sender, system.eventargs e)
this.lb_message.text = "you clicked button1";
</script>
<head runat="server">
<title>untitled page</title>
</head>
<body>
<form runat="server" defaultbutton="button1">
<asp:textbox id="textbox1" runat="server"></asp:textbox>
<asp:button id="button1" runat="server" text="button" onclick="button1_click" />
<asp:label id="lb_message" runat="server"></asp:label>
</form>
</body>
</html> 設定焦點:
現在假設為textbox1控件設定焦點,在asp.net 2.0中可以這樣實作:
this.textbox1.focus(); 或 this.setfocus(this.textbox1); 即可為textbox1控件設定焦點。
如果打算也為表單設定個預設焦點控件,讓光标預設停留在textbox1上:
<form runat="server" defaultfocus="textbox1">
跨頁面資料發送:
如果你需要多個頁面發送資料到同一個表單程式進行處理,或者資料在多個頁面之間傳輸處理的話,你就可以使用asp.net 2.0這個新特性。例如,我打算把default.aspx頁裡textbox1裡的文本資料發送到default2.aspx頁面進行處理:
default.aspx頁:
textbox textbox1 = (textbox)previouspage.findcontrol("textbox1");
this.label1.text = "hi," + textbox1.text + ". this is default2.aspx!";
<html xmlns="http://www.w3.org/1999/xhtml" >
<form id="form1" runat="server">
<asp:label id="label1" runat="server"></asp:label>
</html>
原帖位址:http://blog.csdn.net/zhoufoxcn/archive/2007/09/26/1801205.aspx