1.實現向網頁中動態加入js指令碼
在system.we.ui.page中包含了兩個方法RegisterStartUpScript(),RegisterClientScriptBlock()可以動態的向網頁中添加指令碼他們均含有兩個參數,key,script,key是唯一識別碼,script是指令碼塊;這兩個方法的唯一不同就是產生的指令碼塊的位置不同。嘿嘿,就是雙胞胎啊------生的時間不一樣---
2.頁面的跳轉方法
首先可以使用asp中的方法就是註冊一個引用,<a href="xx.aspx">跳轉到頁面2</a>;
其次可以使用HyperLink空間通過設定NavigatorUrl屬性可以重新導向頁面;適合使用的場合是使用者決定何時跳轉---
第三,可以使用的有Response.Redirect()方法,該方法使用機制是伺服器首先發一個http請求到用戶端,通知用戶端到達一個新的頁面,然後用戶端再發送跳轉請求到伺服器,跳轉後後一頁面無法訪問前一頁面的提交的表單的內容,但是可以使用session,application,cookies對象進行頁面間資料的訪問;適合情況:要儲存url作為查詢字串時,要跳轉到非aspx類型的網頁時,需要跳轉到別的伺服器的頁面時;
第四,可以使用Server.Transfer方法。該方法特殊性在於伺服器一廂情願的改變網頁,客戶瀏覽器不會知道這次重新導向,因此瀏覽器中的url資訊不會改變,原來表單及所有的session等的資訊也可以儲存;適合約一伺服器的頁面跳轉,可以避免不必要的網路通訊,獲得較好的效能---
第五,基本沒用過的server.Excute()方法;
3.實現分頁錯誤自訂重新導向錯誤頁面
在web.cinfig中定義了一個customerError節,配置如下
<cinfiguration><system.web><customerErrors defaultRedirect="error.aspx" mode="RemoteOnly"</system.web></configuration>必須要瞭解的是mode代表顯示的模式,on是在客戶及伺服器端都顯示,remoteonly只有在用戶端顯示顯示自訂頁面,off為都顯示初始的調試資訊頁面<customerErrors></customerErrors>中間允許定義<error statusCode="404" redirect="xx.aspx"/>節,從而實現對不同的網路錯誤實現不同的重新導向,比如404為未找到,401沒有許可權訪問等;
4.在web應用程式中實現快速鍵
每個web伺服器控制項都有一個AccessKey屬性,設定它可以使用快速鍵訪問該控制項,但是僅僅是將焦點轉移到該控制項,鍵盤單擊時間只有button和imagebutton有;
5.有關table控制項的討論
table是用來布局的伺服器端控制項,當今比較流行的是div+css的模式,因此table應當盡量少用;table由行列組成,需要注意的是,table有Rows屬性代表所有的行的數組,但是沒有columns,而是已cell,儲存格來代替,每個cell在通過Add()方法加入控制項或者文字之後同樣調用Rows的Add方法來加入;感覺table比較適合來動態顯示資料;
6.實現在頁面中動態載入控制項
因為網頁布局的關係,所以在網頁中載入控制項時經常用到的是placeholder控制項,該控制項可以作為一個容器在它顯示的為之動態載入其他控制項。使用時先動態產生控制項,然後將它加到placeholder的controls集合中。需要注意的是用代碼建立的伺服器控制項,不會在頁面自動儲存它的資訊,換句話說就是頁面重新整理以後所有的狀態將不可見解決方案是,在pageload時間中編寫相應的產生代碼,判斷viewState["AddControl"]是否為null,若非空時,Button btn=new Button();PlaceHolder1.Controls.Add(btn);btn.ID="btn1";ID屬性設定為在代碼中動態產生的控制項的ID;設定控制項的屬性時,要先將控制項加入controls集合然後進行設定,防止重新整理後資料丟失。