(一). 概述
HyperLink預設沒有Click事件, 重寫了一個HyperLink自訂控制項.
實現原理:
預設Hyperlink是跳到點擊請求的頁面, 本HyperLink自訂控制項最終也是跳轉到請求的頁面, 但期間
執行了自己的一個方法, 我們可以在此方法中添寫自己所需的功能.
本樣本示範統計此超連結點擊次數功能. [參考Asp.net 2.0進階編程]
(二). 代碼實現
1. 自訂控制項 HyperLink.cs 代碼
1 /// <summary>
2 /// Author: [ ChengKing(ZhengJian) ]
3 /// Blog: Http://blog.csdn.net/ChengKing
4 /// </summary>
5 public partial class HyperLink : System.Web.UI.WebControls.HyperLink
6 {
7 public HyperLink()
8 {
9 }
10
11 /// <summary>
12 /// 返回要進行統計頁面的名稱[凡是點擊了此控制項都將經過此total.aspx頁面]
13 /// </summary>
14 public string TotalPage
15 {
16 get
17 {
18 return "total.aspx";
19 }
20 }
21
22 /// <summary>
23 /// 1. 當基類中同名方法有virtual標誌時,一般用override重寫,多態;
24 /// 但當基類沒有virtual關鍵字時,用new關鍵字修改基類方法,不具有多態功能.
25 /// 2. 修改NavigateUrl, 將TotalPage始終作為目標頁面;
26 /// 而將使用者點擊的目標頁面作為page參數傳入
27 /// 3. 這裡方法名稱必須是NavigateUrl, 因為當執行單擊事件時,它會自動取這個屬性名稱的值,進行頁面跳轉
28 /// </summary>
29 public new string NavigateUrl
30 {
31 get
32 {
33 return base.NavigateUrl;
34 }
35 set
36 {
37 string strUrl = "{0}?page={1}";
38 strUrl = String.Format(strUrl, TotalPage, value);
39 base.NavigateUrl = strUrl;
40 }
41 }
42 }
2. 自訂方法所在的頁面 Total.aspx.cs 代碼
1 /// <summary>
2 /// Author: [ ChengKing(ZhengJian) ]
3 /// Blog: Http://blog.csdn.net/ChengKing
4 /// </summary>
5 public partial class HyperLink : System.Web.UI.WebControls.HyperLink
6 {
7 public HyperLink()
8 {
9 }
10
11 /// <summary>
12 /// 返回要進行統計頁面的名稱[凡是點擊了此控制項都將經過此total.aspx頁面]
13 /// </summary>
14 public string TotalPage
15 {
16 get
17 {
18 return "total.aspx";
19 }
20 }
21
22 /// <summary>
23 /// 1. 當基類中同名方法有virtual標誌時,一般用override重寫,多態;
24 /// 但當基類沒有virtual關鍵字時,用new關鍵字修改基類方法,不具有多態功能.
25 /// 2. 修改NavigateUrl, 將TotalPage始終作為目標頁面;
26 /// 而將使用者點擊的目標頁面作為page參數傳入
27 /// 3. 這裡方法名稱必須是NavigateUrl, 因為當執行單擊事件時,它會自動取這個屬性名稱的值,進行頁面跳轉
28 /// </summary>
29 public new string NavigateUrl
30 {
31 get
32 {
33 return base.NavigateUrl;
34 }
35 set
36 {
37 string strUrl = "{0}?page={1}";
38 strUrl = String.Format(strUrl, TotalPage, value);
39 base.NavigateUrl = strUrl;
40 }
41 }
42 } (三). 範例程式碼下載 http://files.cnblogs.com/MVP33650/Total%20HyperLink%20count.rar (四). 其它自訂控制項相關文章 http://blog.csdn.net/ChengKing/category/288694.aspx