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.
}
}
}
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.
}
}
}