Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里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 代码

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 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,EventArgse)
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 }
(三). 示例代码下载
(四). 其它自定义控件相关文章
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值