domingo, 18 de enero de 2009
Como manejar decimales en aspnet
Creo que como manejar decimales en .net es algo basico pero aquí les publico otra manera de hacerlo. =) cualquier pregunta dejen su comentario.HTML INICIAL para explicar el ejemplo, es 1 textbox y un boton, en el textbox agregaremos el valor numero decimal, el ejemplo se trata que no puedan ingresar mas de 2 decimal y mucho menos una letra.
< body>
< form id="form1" runat="server">
< div>
< asp:textbox id="txtvalor" runat="server">< /asp:textbox>
< asp:button id="Btnguardar" runat="server" text="Guardar"> < /asp:button>
< /div>
< /form>
< /body >
1.) agregar un compare validator de su toolbox y configurelo de la siguiente manera:
esto servira para asegurarnos que sea un número el que ingresen.
Propiedades
Operator="DataTypeCheck"
type="Double"
ErrorMessage="usted necesita espesificar un numero"
controltovalidate="txtvalor"
text=*
Deberia terminar así:
< asp:comparevalidator id="CompareValidator1" runat="server" controltovalidate="txtvalor" errormessage="usted necesita espesificar un numero" operator="DataTypeCheck" type="Double">*< /asp:comparevalidator>
2.) agregar un Custom Validator de la siguiente manera esto evitara que se pasen de 2 decimales:
Propiedades:
ErrorMessage="El Numero Contine 3 decimales o mas"
controltovalidate="txtvalor"
text=*
3.) Busque los eventos del Custon validatos y maneje el evento ServerValidate
Ejemplo del codigo 2 y 3 en html:
< asp:customvalidator id="CustomValidator1" runat="server" controltovalidate="txtvalor" errormessage="El Numero Contine 3 decimales o mas" onservervalidate="CustomValidator1_ServerValidate">*< /asp:customvalidator>
4.) agrege el evento onservervalidate del CustomValidator1:
//en la siguiente linea extraigo los decimales
string[] dec = args.Value.TrimEnd('0').Split('.');
int decp = 0;
//valido los decimales
if (dec.Length == 2)
{
decp = dec[1].Length;
}
//valido si los decimales son mayor a 2 y si los son retorno un falso
args.IsValid = decp <= 3;
Algunos datos importantes del codigo.
String.TrimEnd
Quita los caracteres especificados de una matriz de caracteres del final de una cadena, para mas información visite
http://msdn.microsoft.com/es-es/library/kxbw3kwc(VS.80).aspx
Split
Este método devuelve una matriz de cadenas en la que cada elemento es una palabra. http://msdn.microsoft.com/es-es/library/ms228388(VS.80).aspx
5.) para que se mire bonito agregue un Validation Summary
< asp:validationsummary id="ValidationSummary1" runat="server" >
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario