
Supporting Data Entry, Page Submission, and Grid
controls
Jump to: Data Entry | Submitting
the Page | Grids
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:
|