Home     About PeterBlum.com     Policies     Download a Licensed Product     Newsletter
Peter's Professional Validation
Supporting Data Entry, Page Submission, and Grid controls


Validators interact with other controls on your page. There are three classes of controls:
  • Data entry - Validators must be able to retrieve data from your data entry fields, like textboxes and listboxes.
  • Page submission - When a button is clicked, the entire page is validated. Client-side validation requires that the button can run some code and stop submitting the page when errors are detected.
  • Grid - Grids offer validators some challenges including how their submit controls work.
Peter's Professional Validation has the most extensive support for controls available, including third party controls.

Data Entry

Microsoft's 5 validator controls support only their TextBox, ListBox, DropDownList, HtmlInputTextBox, HtmlTextArea, HtmlSelect, and HtmlInputFile controls. They support custom controls that implement the ValidationPropertyAttribute. One thing all these controls have in common is that their value is textual. That's why you don't see support for CheckBoxes and RadioButtonLists.

DES supports all of those controls. In addition, DES's existing validators support:
  • These Microsoft controls: CheckBox, RadioButton, CheckBoxList, RadioButtonList, HtmlInputCheckBox, and HtmlInputRadioButton.
  • All custom controls subclassed from the Microsoft controls listed above.
  • All custom controls that implement the ValidationPropertyAttribute.
  • The following HTML data entry tags when they have runat=server and ID= attributes defined:
    <input type=text>, <textarea>, <input type=file>, <select>, <input type=checkbox>, and <input type=radio>
  • DES provides an easy way to describe third party custom controls that represent textboxes, listboxes and the rest but are not subclassed from the original Microsoft classes. You simply add a line into DES's XML configuration file to identify the class and properties that contain data.
    For example, this describes the MetaBuilders GlobalRadioButton control:
    <ThirdPartyControl class="MetaBuilders.WebControls.GlobalRadioButton" sameas="radiobutton" property="Checked" />
  • Custom control developers can go much further, providing the hooks to interface with any kind of control.
    For example, the Peter's Date Package CS_Calendar control is a data entry control but it's built upon a <table>, not a standard input field. Yet, DES supports the CS_Calendar control. Even better, these extensions are automatically applied to the existing DES validators. So you use the CompareToValueValidator, CompareTwoFieldsValidator, and RangeValidator to validate CS_Calendar.

Third Party Data Entry Controls with included support

DES includes guides and support files to support all of these products.

Submitting the Page

When you submit a page, the validators on the page should be validated. There are two sides to submitting a page: client and server. Microsoft built in support to automatically validate both sides into these submit controls: Button, LinkButton, ImageButton, HtmlInputButton, HtmlButton, and HtmlInputImage. For menus and toolbars, you are on your own.

DES provides support for the standard Microsoft buttons, menus and toolbars. While the system can be hooked up to any third party button, menu or toolbar, here are the controls that have been tested and documented in the User's Guide.


Grids

There are several tricks to supporting Grid controls.
  • The submit buttons need to respect client-side validation, including validation groups, and the ability to disable validation. DES supplies extensions to the button column controls for various grid products.
  • Individual rows of the grid must support different validation groups. DES makes this easy. You insert the "+" character at the beginning of a validation group name and it makes the row have a unique name.
DES includes enhancements for the following grid products: