Asp.net 2.0自定義控件(點擊HyperLink後執行事件)

 

 (一). 概述

         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 Total : System.Web.UI.Page
 6 {
 7     //公共統計頁面, 用來執行 點擊汽車圖片次數功能的方法
 8     protected void Page_Load(object sender, EventArgs e)
 9     {
10         this.CustomMethod();
11 
12         string strObjectPage = Request["page"].ToString();
13         Response.Redirect(strObjectPage);
14     }
15 
16     /// <summary>
17     /// 這個方法可以寫類似OnClick事件代碼
18     /// </summary>
19     private void CustomMethod()
20     {
21         //做統計功能, 或其它功能
22         //Application["Car_Click_Count"] = (int)Application["Car_Click_Count"] + 1;
23     }
24 }
 
 
(三). 示例代碼下載
 
 
 
(四). 其它自定義控件相關文章
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章