Osga
Usuario (Colombia)
Este post nos muestra la validacion con controles devexpres espero les sirva. Codigo aspx. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Validacion...</title> <script type="text/javascript"> function OnNameValidation(s, e) { var name = e.value; if (name == null) return; if (name.length < 5) e.isValid = false; } function OnEdadValidation(s, e) { var age = e.value; if (age == null || age == "" return; var digits = "0123456789"; for (var i = 0; i < age.length; i++) { if (digits.indexOf(age.charAt(i)) == -1) { e.isValid = false; break; } } if (e.isValid && age.charAt(0) == '0') { age = age.replace(/^0+/, ""; if (age.length == 0) age = "0"; e.value = age; } if (age < 18) e.isValid = false; } function OnCalenDateValidation(s, e) { var selectedDate = s.date; if (selectedDate == null || selectedDate == false) return; var currentDate = new Date(); if (currentDate.getFullYear() != selectedDate.getFullYear() || currentDate.getMonth() != selectedDate.getMonth()) e.isValid = false; } </script> </head> <body> <form id="form1" runat="server"> <div id="clientContainer"> <table cellspacing="0" cellpadding="4" runat="server" id="serverContainer"> <tr> <td style="width: 80px;"> <dx:ASPxLabel ID="ASPxLabel1" runat="server" AssociatedControlID="NmaeTexbox" Text="Nombre:"> </dx:ASPxLabel> </td> <td> <dx:ASPxTextBox ID="NameTexbox" runat="server" Width="170px" EnableClientSideAPI="true" ClientInstanceName="Nombre" OnValidation="NameTexbox_Validation" > <ValidationSettings SetFocusOnError="true" ErrorText="Nombre no Valido"> <RequiredField IsRequired="true" ErrorText="* Nombre"/> </ValidationSettings> <ClientSideEvents Validation="OnNameValidation"/> </dx:ASPxTextBox> </td> </tr> <tr> <td> <dx:ASPxLabel ID="ASPxLabel2" runat="server" Text="Edad:" AssociatedControlID="EdadTexbox"> </dx:ASPxLabel> </td> <td> <dx:ASPxTextBox ID="ASPxTextBox2" runat="server" Width="170px" EnableClientSideAPI="true" ClientInstanceName="Edad" OnValidation="EdadTexbox_Validation" > <ValidationSettings SetFocusOnError="true" ErrorText="Edad No valida"></ValidationSettings> <ClientSideEvents Validation="OnEdadValidation"/> </dx:ASPxTextBox> </td> </tr> <tr> <td> <dx:ASPxLabel ID="ASPxLabel3" runat="server" Text="Email" > </dx:ASPxLabel> </td> <td> <dx:ASPxTextBox ID="ASPxTextBox3" runat="server" Width="170px" EnableClientSideAPI="true" ClientInstanceName="Email" > <ValidationSettings SetFocusOnError="true" > <RegularExpression ErrorText="Email Invalido" ValidationExpression="w+([-+.']w+)[email protected]+([-.]w+)*.w+([-.]w+)*" /> <RequiredField ErrorText="*Email Requerido" IsRequired="true"/> </ValidationSettings> </dx:ASPxTextBox> </td> </tr> <tr> <td> <dx:ASPxLabel ID="ASPxLabel4" runat="server" Text="Fecha"> </dx:ASPxLabel> </td> <td> <dx:ASPxDateEdit ID="ASPxDateEdit1" runat="server" Width="160px" ClientInstanceName="Calen" OnValidation="CalenDataEdit_Validation"> <ValidationSettings SetFocusOnError="true" ErrorText="*Fecha Requerida"> <RequiredField IsRequired="true" ErrorText=""/> </ValidationSettings> <ClientSideEvents Validation="OnCalenDateValidation" /> </dx:ASPxDateEdit> </td> </tr> <tr> <td> </td> <td> <table cellpadding="0" cellspacing="0"> <tr> <td> <dx:ASPxButton ID="btnenviar" runat="server" Text="Enviar" onclick="btnenviar_Click"> </dx:ASPxButton> </td> <td style=" padding-left: 8px"> <dx:ASPxButton ID="btnborrar" runat="server" Text="Borrar" AutoPostBack="false" CausesValidation="false"> <ClientSideEvents Click="function(s,e){ASPxClientEdit.ClearEditorsInContainerById('clientContainer') }"/> </dx:ASPxButton> </td> </tr> </table> </td> </tr> </table> </div> <dx:ASPxHyperLink ID="ASPxHyperLink1" runat="server" NavigateUrl="~/Default.aspx" Text="Home" /> </form> </body> </html> /////////////////////////////////////////////////////////////////////////////// Codigo cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using DevExpress.Web.ASPxEditors; using DevExpress.Web.ASPxClasses.Internal; namespace DevEspress_Demo_Plantilla_Imagen { public partial class GridView_Templates_Validation : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void NameTexbox_Validation(object sender, ValidationEventArgs e) { if ((e.Value as string).Length < 2) e.IsValid = false; } protected void EdadTexbox_Validation(object sender, ValidationEventArgs e) { if (CommonUtils.IsNullValue(e.Value) || ((string)e.Value == "") return; string strAge = ((string)e.Value).TrimStart('0'); if (strAge.Length == 0) return; UInt32 age = 0; if (!UInt32.TryParse(strAge, out age) || age < 18) e.IsValid = false; } protected void CalenDataEdit_Validation(object sender, ValidationEventArgs e) { if (!(e.Value is DateTime)) return; DateTime selectedDate = (DateTime)e.Value; DateTime currentDate = DateTime.Now; if (selectedDate.Year != currentDate.Year || selectedDate.Month != currentDate.Month) e.IsValid = false; } protected void btnenviar_Click(object sender, EventArgs e) { //aqui va Lo que quiera hacer con los texbox y el DateEdit si los quiere enviar a una base de datos o enviearlos a un metodo. } } }