代码改变世界

【更正】“给自定义控件(Web Control)添加事件的几种方法”有一个不太准确的地方。

2008-07-15 05:44  金色海洋(jyk)  阅读(1027)  评论(0编辑  收藏  举报

    给自定义控件(Web Control)添加事件的几种方法。前两种方法可以不实现IPostBackEventHandler 
    
    上一篇写了一下如何在自定义控件里面添加事件,由简单的开始,一步一步实现了几种添加事件的方式,由于当时只给自定义控件添加了一种外部事件,测试的时候没有什么问题,但是后来在写分页控件的时候,我给分页控件加了两种外部事件,然后测试的时候就出现了一个问题,本来只想调用外部的一种事件,结果外部的两种事件都被调用了。分析了一下,
public event EventHandler myClick
        
{
            add 
{
                Events.AddHandler(
this, value);
            }

            remove 
{
                Events.RemoveHandler(
this, value);
            }

        }


就是这个地方写错了,不能用 this,要单独定义一个 object才行。

    由于上一篇只是一个简单的 demo,我又比较懒,就不去修改了,这里直接把分页控件的事件部分的代码写出来,供大家参考。

    
[Serializable]
    
public class PageArgs : EventArgs
    
{
        
/// <summary>
        
/// 翻页前的页号,不知道这个有没有用
        
/// </summary>

        public Int32 OldPageIndex;

        
/// <summary>
        
/// 像要翻到的页号
        
/// </summary>

        public Int32 CurrentPageIndex;
        
    }

 定义委托

        
定义事件

        
调用外部事件

        
分页控件的回发事件

        
响应分页事件

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.3 【增加了使用说明】
这里是分页控件的介绍和源码下载。
2