HtmlButton.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /* System.Web.UI.HtmlControls
  2. * Authors
  3. * Leen Toelen ([email protected])
  4. */
  5. using System;
  6. using System.ComponentModel;
  7. using System.Web;
  8. using System.Web.UI;
  9. namespace System.Web.UI.HtmlControls{
  10. [DefaultEvent("ServerClick")]
  11. public class HtmlButton : HtmlContainerControl, IPostBackEventHandler{
  12. private static readonly object EventServerClick;
  13. //Checked
  14. static HtmlButton(){
  15. EventServerClick = new Object();
  16. }
  17. //Checked
  18. public HtmlButton(): base("button"){}
  19. //Checked
  20. protected virtual void OnServerClick(EventArgs e){
  21. EventHandler handler;
  22. handler = (EventHandler) Events[EventServerClick];
  23. if(handler != null){
  24. handler.Invoke(this, e);
  25. }
  26. }
  27. protected override void RenderAttributes(HtmlTextWriter writer){
  28. if (Page != null && Events[EventServerClick] != null){
  29. /* Got to figure out how to manage events */
  30. }
  31. base.RenderAttributes(writer);
  32. }
  33. void System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(string eventArgument){
  34. if (CausesValidation){
  35. Page.Validate();
  36. }
  37. OnServerClick(EventArgs.Empty);
  38. }
  39. public event EventHandler ServerClick{
  40. add{
  41. Events.AddHandler(EventServerClick, value);
  42. }
  43. remove{
  44. Events.RemoveHandler(EventServerClick, value);
  45. }
  46. }
  47. public bool CausesValidation{
  48. get{
  49. object attr = ViewState["CausesValidation"];
  50. if (attr != null){
  51. return (Boolean) attr;
  52. }
  53. return true;
  54. }
  55. set{
  56. ViewState["CausesValidation"] = (Boolean) value;
  57. }
  58. }
  59. } // class HtmlButton
  60. } // namespace System.Web.UI.HtmlControls