Asp.net 2.0自訂控制項(點擊HyperLink後執行事件)

來源:互聯網
上載者:User
(一). 概述

         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 }  (三). 範例程式碼 下載          http://files.cnblogs.com/MVP33650/Total%20HyperLink%20count.rar     (四). 其它自訂控制項相關文章         http://blog.csdn.net/ChengKing/category/288694.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.