page類:
1、頁頭中inherits標識繼承於哪個類。partial標
識局部的,類的一部分,編譯的時候 把同名的
partial合併成一個完整的class文件,然後編譯成
中間文件。
2、.net頁面的生命週期,控件的生命週期,生命周
期的應用。頁面-屬性-document-trace設爲true,
運行頁面可以看到跟蹤信息。
3、統一驗證身份的方法,寫一個驗證的類文件(類
文件中添加this.Load+=new eventhander
(thisLoad) void thisLoad(object
sender,eventarge e){if(session["username"]
==null){response.redirect("login.aspx");}})
,讓需要驗證的頁繼承這個類。(第五集26分鐘)
4、page類的屬性:page.ispostback
(),clientscript。45分鐘,有個js類,方便輸出
js題型。
5、回調技術(52分鐘),無刷新局部判斷(要比
ajax複雜)。
clientscript Page.ClientScript.RegisterStartupScript()介紹
page.RegisterStartupScript在新的版本中已經過期了 取而代之的是其他兩種方法。
ScriptManager和ClientScript的區別,他倆的方法是一樣的,只是在特殊的場合要注意使用。
ScriptManager適用在特殊的場合,那麼我們在控件中如何來進行區分應該使用哪一個呢?其實可以通過尋找控件的parent,判斷是否有updatepanel,如果有就用ScriptManager;沒有的話當然用ClientScript,避免每次postback操作時控件都要進行資源文件的註冊。也就是說 是否兼容ajax的問題,ScriptManager兼容於ajax,在ajax updatepanel中使用ClientScript是無效的。這裏是要特別注意的,本人就因爲這個折磨了一下午了。
使用類型、鍵、腳本文本和指示是否添加腳本標記的布爾值向 Page 對象註冊啓動腳本。 也就是說利用.net函數向頁面中添加scrip函數
參數
- type
-
要註冊的啓動腳本的類型。
- key
-
要註冊的啓動腳本的鍵。
- script
-
要註冊的啓動腳本文本。
- addScriptTags
-
指示是否添加腳本標記的布爾值.
-
tips:
-
啓動腳本由它的鍵和類型唯一標識。具有相同的鍵和類型的腳本被視爲重複腳本。只有使用給定的類型和鍵對的腳本才能使用該頁面進行註冊。試圖註冊一個已經註冊的腳本不會創建重複的腳本。
調用 IsStartupScriptRegistered 方法以確定具有給定的鍵和類型對的啓動腳本是否已經註冊,從而避免不必要的添加腳本嘗試。
在 RegisterStartupScript 方法的此重載中,使用 addScriptTags 參數可指示 script 參數中提供的腳本是否包裝在 <script> 元素塊中。將 addScriptTags 設置爲 true 指示腳本標記將自動添加。
RegisterStartupScript 方法添加的腳本塊在頁面加載完成但頁面的 OnLoad 事件引發之前執行。
-
舉例說明
-
<%@ Page Language="C#"%> <script runat="server"> public void Page_Load(Object sender, EventArgs e) { // Define the name and type of the client scripts on the page. String csname1 = "PopupScript"; String csname2 = "ButtonClickScript"; Type cstype = this.GetType(); // Get a ClientScriptManager reference from the Page class. ClientScriptManager cs = Page.ClientScript; // Check to see if the startup script is already registered. if (!cs.IsStartupScriptRegistered(cstype, csname1)) { String cstext1 = "alert('Hello World');"; cs.RegisterStartupScript(cstype, csname1, cstext1, true); } // Check to see if the client script is already registered. if (!cs.IsClientScriptBlockRegistered(cstype, csname2)) { StringBuilder cstext2 = new StringBuilder(); cstext2.Append("<script type=text/javascript> function DoClick() {"); cstext2.Append("Form1.Message.value='Text from client script.'} </"); cstext2.Append("script>"); cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false); } } </script> <html> <head> <title>ClientScriptManager Example</title> </head> <body> <form id="Form1" runat="server"> <input type="text" id="Message"> <input type="button" value="ClickMe" οnclick="DoClick()"> </form> </body> </html>
-
注意兩個函數的使用,一個是start添加到頁面加載之前,在pageload之前執行,另外一個是在加載頁面之後執行。這兩個函數的主要作用是將scrip動態的嵌入到.net的代碼中,適合處理大批的js代碼,比如你要組一個js的消息提示框,需要和服務器交互,那麼你可以把js代碼寫成字符串用這兩個函數輸出。這樣就可以輕鬆的和服務器交互了。