让Timer出现在Component Tray上。

 代码
代码1
 using System;
using System;2
 using System.ComponentModel;
using System.ComponentModel;3
 using System.Web.UI;
using System.Web.UI;4
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;5

6
 namespace PowerAsp.NET.Comtrols
namespace PowerAsp.NET.Comtrols7


 {
{8

 /**//// <summary>
    /**//// <summary>9
 ///
    /// 10
 /// </summary>
    /// </summary>11
 public class WebTimer2:Component
    public class WebTimer2:Component12

 
     {
{13
 public WebTimer2()
        public WebTimer2()14

 
         {
{15
 }
        }16

17
 private int _interval = 5000;
        private int _interval = 5000;18
 private bool _enable = false,_isHooked = false;
        private bool _enable = false,_isHooked = false;19
 private WebTimer _timerControl = null;
        private WebTimer _timerControl = null;20
 private Page _page = null;
        private Page _page = null;21

22
 [DefaultValue(null)]
        [DefaultValue(null)]23
 public Page _Page
        public Page _Page24

 
         {
{25
 get
            get26

 
             {
{27
 return _page;
                return _page;28
 }
            }29
 set
            set30

 
             {
{31
 _page = value;
                _page = value;32
 }
            }   33
 }
        }34
 [
        [35
 CategoryAttribute("Layout"),
        CategoryAttribute("Layout"),36
 DefaultValueAttribute(5000),
        DefaultValueAttribute(5000),37
 BindableAttribute(false),
        BindableAttribute(false),38
 DescriptionAttribute("")
        DescriptionAttribute("")39
 ]
        ]40
 public int Interval
        public int Interval41

 
         {
{42
 get
            get43

 
             {
{44
 return _interval;
                return _interval;45
 }
            }46
 set
            set47

 
             {
{48
 _interval = value;
                _interval = value;49
 }
            }50

51
 }
        }52
 [
        [53
 CategoryAttribute("Layout"),
        CategoryAttribute("Layout"),54
 DefaultValueAttribute(false),
        DefaultValueAttribute(false),55
 BindableAttribute(false),
        BindableAttribute(false),56
 DescriptionAttribute("")
        DescriptionAttribute("")57
 ]
        ]58
 public bool Enabled
        public bool Enabled59

 
         {
{60
 get
            get61

 
             {
{62
 return _enable;
                return _enable;63
 }
            }64
 set
            set65

 
             {
{66
 _enable = value;
                _enable = value;67
 if(_enable && !_isHooked)
                if(_enable && !_isHooked)68
 HookPageLoad();
                    HookPageLoad();69
 }
            }70
 }
        }71
 [CategoryAttribute("Action")]
        [CategoryAttribute("Action")]72
 public event EventHandler Timer
        public event EventHandler Timer73

 
         {
{74
 add
            add75

 
             {
{76
 if(_timerControl == null)
                if(_timerControl == null)77
 _timerControl = new WebTimer();
                    _timerControl = new WebTimer();78
 _timerControl.Timer += value;
                _timerControl.Timer += value;79
 }
            }80
 remove
            remove81

 
             {
{82
 if(_timerControl != null )
                if(_timerControl != null )83

 
                 {
{84
 _timerControl.Timer -= value;
                    _timerControl.Timer -= value;85
 }
                }86
 }
            }87
 }
        }88
 private void HookedPageLoad(object sender,EventArgs args)
        private void HookedPageLoad(object sender,EventArgs args)89

 
         {
{90
 if(_timerControl == null)
            if(_timerControl == null)91
 _timerControl = new WebTimer();
                _timerControl = new WebTimer();92
 _timerControl.Interval = _interval;
            _timerControl.Interval = _interval;93
 _timerControl.Enabled = _enable;
            _timerControl.Enabled = _enable;94
 if(_enable && _page != null)
            if(_enable && _page != null)95

 
             {
{96
 foreach(Control c in _page.Controls)
                foreach(Control c in _page.Controls)97

 
                 {
{98
 if(c is HtmlForm)
                    if(c is HtmlForm)99

 
                     {
{100
 c.Controls.Add(_timerControl);
                        c.Controls.Add(_timerControl);101
 }
                    }102
 }
                }103
 }
            }104

105
 }
        }106
 private void HookPageLoad()
        private void HookPageLoad()107

 
         {
{108
 if(_page != null)
            if(_page != null)109

 
             {
{110
 _page.Load += new EventHandler(HookedPageLoad);
                _page.Load += new EventHandler(HookedPageLoad);111
 _isHooked = true;
                _isHooked = true;112
 }
            }113
 }
        }114
 }
    }115
 }
}116
 Wrapper WebTimer模式
Wrapper WebTimer模式.jpg) 
  
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号