解决方案 »

  1.   

       public event GetDataSource getPageData;这里定义个属性,在页面上指定,然后复制不就完了吗?
      

  2.   

    首先,你这里的 OnGetPageData 起名容易产生歧义。你可以这样写    public delegate void GetDataSource(object sender, EventArgs e);    public event GetDataSource getPageData;    protected void lbtn_upPage_Click(object sender, EventArgs e)
        {
            if (currentPage > 1)
            {
                currentPage = upPage;            if (getPageData != null)
                {
                    getPageData(sender, e);
                }
            }    }
    然后运行,你可以看到在设计页面上的 OnGetPageData 属性是asp.net的语法糖,它对应的是 event GetPageData而根本没有“On”这个东西。不要对此产生歧义,不要以为是调用了你的另外一个方法。你写的public void OnGetPageData(object sender,EventArgs e)其实是画蛇添足没有意义、反而带来歧义的。这个属性的含义,就是让你的aspx中的GetPageDataSource方法赋值给(注册给)ascx实例的GetPageData事件。跟普通的自定义代码的 += 写法的功能一样,只不过是用说明性的“属性”来代替了代码。