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  }
 
 
(三). 示例代码 下载
 
 
 
(四). 其它自定义控件相关文章
 

你可能感兴趣的:(asp.net)