天天看點

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

    上一篇寫了一下如何在自定義控件裡面添加事件,由簡單的開始,一步一步實作了幾種添加事件的方式,由于當時隻給自定義控件添加了一種外部事件,測試的時候沒有什麼問題,但是後來在寫分頁控件的時候,我給分頁控件加了兩種外部事件,然後測試的時候就出現了一個問題,本來隻想調用外部的一種事件,結果外部的兩種事件都被調用了。分析了一下,

public event EventHandler myClick

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

{

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            add 

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                Events.AddHandler(this, value);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            }

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            remove 

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                Events.RemoveHandler(this, value);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        }

就是這個地方寫錯了,不能用 this,要單獨定義一個 object才行。

    由于上一篇隻是一個簡單的 demo,我又比較懶,就不去修改了,這裡直接把分頁控件的事件部分的代碼寫出來,供大家參考。

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

[Serializable]

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

    public class PageArgs : EventArgs

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /**//// <summary>

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// 翻頁前的頁号,不知道這個有沒有用

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// </summary>

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        public Int32 OldPageIndex;

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// 像要翻到的頁号

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        public Int32 CurrentPageIndex;

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

    }

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

 定義委托#region 定義委托

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// 定一個委托,翻頁的事件

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// <param name="sender"></param>

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// <param name="e"></param>

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        public delegate void EventPageChange(Object sender, PageArgs e);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// 事件用

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        protected static readonly object EventChange = new object();

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        protected static readonly object EventBind = new object();

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        #endregion

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        定義事件#region 定義事件

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// 使用者單擊頁号後,觸發的事件,在綁定顯示資料的控件之前觸發

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        [Description("頁号改變的時候觸發")]

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        public event EventPageChange PageChanged

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            add

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                Events.AddHandler(EventChange, value);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            remove

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                Events.RemoveHandler(EventChange, value);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// 使用者單擊頁号後,并且綁定顯示資料的控件之後觸發

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        [Description("在自動提取資料的方式下,綁定控件後觸發")]

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        public event EventPageChange GridBinded

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                Events.AddHandler(EventBind, value);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                Events.RemoveHandler(EventBind, value);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        調用外部事件#region 調用外部事件

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        protected void OnPageChange(object sender, PageArgs e)

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            EventPageChange hd = (EventPageChange)base.Events[EventChange];

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            if (hd != null)

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                hd(sender, e);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// 綁定控件後觸發

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        protected void OnGridBinded(object sender, PageArgs e)

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            EventPageChange hd = (EventPageChange)base.Events[EventBind];

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        分頁控件的回發事件#region 分頁控件的回發事件

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// 分頁控件的回發事件 

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// <param name="PageIndex">要翻到的頁号</param>

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        public void RaisePostBackEvent(string PageIndex)

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            Int32 tmpPageIndex = 1; //不是數字,顯示第一頁

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            if (Functions.IsInt(PageIndex))

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                tmpPageIndex = Int32.Parse(PageIndex);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            Pager_Click(tmpPageIndex);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        響應分頁事件#region 響應分頁事件

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        /// 響應分頁事件

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

        private void Pager_Click(Int32 tmpPageIndex)

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            //判斷頁号是否超出有效範圍

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            if (tmpPageIndex < 0)

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                tmpPageIndex = 1;

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            if (tmpPageIndex > this.PageCount)

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                tmpPageIndex = this.PageCount;

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            //定義一個事件裡的參數

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            PageArgs e = new PageArgs();

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            e.OldPageIndex = this.PageIndex;

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            e.CurrentPageIndex = tmpPageIndex;

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            this.PageIndex = tmpPageIndex;

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            //觸發(調用)外部的事件

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            this.OnPageChange(this, e);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            if (this.SetGetDataKind == myPageGetDataKind.Auto)

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                //自動提取資料的方式

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                //綁定控件

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                DataBind(tmpPageIndex);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                //觸發(調用)外部的事件

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

                this.OnGridBinded(this, e);

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            //顯示UI

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

            this.ManagerPageUI.AddPageUI();

【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。
【更正】“給自定義控件(Web Control)添加事件的幾種方法”有一個不太準确的地方。

<a href="http://www.cnblogs.com/jyk/archive/2008/07/05/1236692.html">【開源】QuickPager ASP.NET2.0分頁控件V2.0.0.3 【增加了使用說明】</a>

這裡是分頁控件的介紹和源碼下載下傳。

繼續閱讀