CustomValidator.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * Project : Mono
  3. * Namespace : System.Web.UI.MobileControls
  4. * Class : CustomValidator
  5. * Author : Gaurav Vaish
  6. *
  7. * Copyright : 2003 with Gaurav Vaish, and with
  8. * Ximian Inc
  9. */
  10. using System.Web.UI;
  11. using System.Web.Mobile;
  12. using System.Web.UI.WebControls;
  13. namespace System.Web.UI.MobileControls
  14. {
  15. public class CustomValidator : BaseValidator
  16. {
  17. private static readonly object ServerValidateEvent = new object();
  18. private System.Web.UI.WebControls.CustomValidator webCV;
  19. public CustomValidator()
  20. {
  21. }
  22. protected override bool EvaluateIsValid()
  23. {
  24. return base.EvaluateIsValidInternal();
  25. }
  26. protected override System.Web.UI.WebControls.BaseValidator CreateWebValidator()
  27. {
  28. webCV = new System.Web.UI.WebControls.CustomValidator();
  29. webCV.ServerValidate += new ServerValidateEventHandler(WebServerValidate);
  30. return webCV;
  31. }
  32. private void WebServerValidate(object sender, ServerValidateEventArgs e)
  33. {
  34. e.IsValid = OnServerValidate(e.Value);
  35. }
  36. protected bool OnServerValidate(string value)
  37. {
  38. ServerValidateEventHandler sveh =
  39. (ServerValidateEventHandler)(Events[ServerValidateEvent]);
  40. if(sveh != null)
  41. {
  42. ServerValidateEventArgs e =
  43. new ServerValidateEventArgs(value, true);
  44. sveh(this, e);
  45. return e.IsValid;
  46. }
  47. return false;
  48. }
  49. protected override bool ControlPropertiesValid()
  50. {
  51. if(ControlToValidate.Length > 0)
  52. return true;
  53. return base.ControlPropertiesValid();
  54. }
  55. public event ServerValidateEventHandler ServerValidate
  56. {
  57. add
  58. {
  59. Events.AddHandler(ServerValidateEvent, value);
  60. }
  61. remove
  62. {
  63. Events.RemoveHandler(ServerValidateEvent, value);
  64. }
  65. }
  66. }
  67. }