Programmatically Instantiating Controls More About Server Controls

267 The event-handler method can be given any name, but it is a common convention to use a name of the form FieldName _ EventName . Also by convention, event signatures for controls conform to the signature shown, with the exception of the e parameter being some other type derived from the EventArgs type. The sender parameter passed to the handler method holds a reference to the object that fired the event, and the e parameter holds a reference to an object that provides any extra information needed for the event. Events that pass a generic EventArgs argument have no event information to pass. Events that pass an argument of a type derived from EventArgs pass additional information within the fields of the passed object. You can determine the correct signature for handling a specific event by referring to the controls documentation or by using Visual Studio .NETs built-in object browser. In addition, the Visual Studio .NET Web Forms Designer can automatically generate a handler-method declaration for any event exposed by any control on a given form.

6.3.4 Programmatically Instantiating Controls

Its easy to dynamically instantiate server controls at runtime. A convenient place to do this is in an override of the OnPreRender method of the Page class. Recall that the OnPreRender method is called after the page and its controls have been instantiated and initialized but prior to any rendering. Controls created here and added to the Page objects Controls collection will be rendered on the page. The code is simple: Private WithEvents ctl As TextBox Protected Overrides Sub OnPreRenderByVal e As EventArgs Instantiate a TextBox control and set some of its properties. ctl = New TextBox ctl.ID = TextBox1 ctl.Text = This is my text box. Add the control to the page. Me.Controls.Addctl Let the base class raise the PreRender event. MyBase.OnPreRendere End Sub This code can be placed either in a code-behind class or directly within a script block in the .aspx page. The Controls property of the Page class is of type ControlCollection. The Add method of the ControlCollection class adds the given control to the end of the collection. Visually, the newly added control appears as the last element in the rendered page. To add the control at a specific location in the collection, use the ControlCollection classs AddAt method. The AddAt method syntax looks like this: Public Overridable Sub AddAt _ ByVal index As Integer, _ ByVal child As System.Web.UI.Control The parameters of the AddAt method are: index 268 Specifies the position in the collection at which to insert the new control. This number is zero- based. child Specifies the control to add to the collection. The AddAt method is even more convenient when used with the ControlCollection classs IndexOf method. The IndexOf method returns the integer index within the collection of a given control. For example, assuming that a web page has a control named Label2 and that the variable ctl contains a reference to a newly created control, the following line adds the new control to the page, rendering it immediately prior to the Label2 control: Me.Controls.AddAtMe.Controls.IndexOfLabel2, ctl

6.4 Adding Validation

Validating user input is a common requirement of any application that relies on the user to provide data. The ASP.NET framework provides tools to make input validation easy. ASP.NET supports validation by providing server controls that handle the validation process. Each server control placed on a form is responsible for validating the value in some other control on the form. The validation process occurs both on the client if the browser is capable and on the server, or just on the server if the browser cant handle it. Validation occurs on the server, even if it occurs on the client, to prohibit a hostile client from submitting invalid data. The server controls that relate to validation are: CompareValidator Compares the value in a control with either a constant value or the value in another control. The developer chooses the comparison to be performed equal, less than, greater than, etc.. The validation succeeds if the comparison is True . CustomValidator Allows the application to perform validation logic that isnt provided by the standard comparison controls. RangeValidator Compares the value in a control to a given range. The validation succeeds if the value is within the range. RegularExpressionValidator Compares the value in a control to a given regular expression. The validation succeeds if the value is matched by the regular expression. RequiredFieldValidator Checks that a value has been entered into a control. The validation succeeds if the value is nonempty. ValidationSummary Provides an on-screen summary of the validation errors that have occurred on the page.