2009-09-15 22 views

Respuesta

100

Si todo lo que usted está preocupado por es que el campo contiene un número entero (es decir, no se refiere a una serie), a continuación, añadir una CompareValidator con su Operator propiedad establecida en DataTypeCheck:

<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer" 
ControlToValidate="ValueTextBox" ErrorMessage="Value must be a whole number" /> 

Si hay un rango específico de valores que son válidos (que probablemente son), entonces usted puede utilizar un RangeValidator, así:

<asp:RangeValidator runat="server" Type="Integer" 
MinimumValue="0" MaximumValue="400" ControlToValidate="ValueTextBox" 
ErrorMessage="Value must be a whole number between 0 and 400" /> 

Estos sólo validará si hay texto en el cuadro de texto, por lo que wil Necesito mantener el RequiredFieldValidator allí también.

Como dijo @Mahin, asegúrese de marcar la propiedad Page.IsValid en el lado del servidor, de lo contrario, el validador solo funciona para usuarios con JavaScript habilitado.

+0

Posible problema con CompareValidator que comprueba un tipo de datos de Entero: Parece que solo comprueba los dígitos correctos (0-9), pero no comprueba el rango. Por lo tanto, si utiliza este validador, podría obtener excepciones fuera de rango si el valor ingresado por el usuario es demasiado grande o demasiado pequeño. Mejor agrega un validador de rango también! –

4

Uso Int32.TryParse.

int integer; 
Int32.TryParse(Textbox.Text, out integer) 

devolverá un bool para que pueda ver si entraban en un entero válido.

2

Adjuntar un validador de expresión regular para el cuadro de texto y crea su expresión sea esta:

^\d+$ 

y hacer su validación del lado del servidor también, por supuesto.

1
<script language="javascript" type="text/javascript"> 
     function fixedlength(textboxID, keyEvent, maxlength) { 
      //validation for digits upto 'maxlength' defined by caller function 
      if (textboxID.value.length > maxlength) { 
       textboxID.value = textboxID.value.substr(0, maxlength); 
      } 
      else if (textboxID.value.length < maxlength || textboxID.value.length == maxlength) { 
       textboxID.value = textboxID.value.replace(/[^\d]+/g, ''); 
       return true; 
      } 
      else 
       return false; 
     } 
</script> 

<asp:TextBox ID="txtNextVisit" runat="server" MaxLength="2" onblur="return fixedlength(this, event, 2);" onkeypress="return fixedlength(this, event, 2);" onkeyup="return fixedlength(this, event, 2);"></asp:TextBox> 
+1

esta función javascript aceptará solo 2 enteros, también el usuario no puede escribir otro tipo entero. si desea más de 2 valores enteros, simplemente use ------ Devraj Kumar, Kanrad Technology –

+0

Puedes editar tu respuesta para agregar más detalles (es mejor leerla que un comentario) – kleopatra

6

Esto funciona bien para mí:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
    ControlToValidate="YourTextBoxID" 
    ErrorMessage="Only numeric allowed." ForeColor="Red" 
    ValidationExpression="^[0-9]*$" ValidationGroup="NumericValidate">* 
</asp:RegularExpressionValidator> 

creo que se debe añadir a su ValidationGroup="NumericValidate" botón de enviar también.

1

Puede usar java script para esto: -

<asp:TextBox ID="textbox1" runat="server" Width="150px" MaxLength="8" onkeypress="if(event.keyCode<48 || event.keyCode>57)event.returnValue=false;"></asp:TextBox> 
1

Visual Studio tiene soporte integrado ahora conseguido para la comprobación de rango y tipo de cheques: -

Prueba esto: - Para la comprobación de rango Antes de validar/verificar un rango particular de números Cambie a la vista de diseño desde la vista de marcado. Luego: -

Ver> Herramientas> Validación

Ahora arrastre en RangeValidator a su página de diseño en la que desea mostrar el mensaje de error (por supuesto, si el usuario está introduciendo valores fuera de límites) ahora haga clic en el mando a RangeValidator. Haga clic derecho y seleccione propiedades. En la ventana Propiedades (generalmente se abre debajo de la barra de solución), seleccione MENSAJE DE ERROR. Escriba: -

El número debe estar dentro del rango.

Ahora seleccione Control para validar y seleccionar su TextboxID (o escríbalo de todos modos) desde el menú desplegable. Ubique Escriba en la barra de propiedades y seleccione abajo Entero.
Justo encima encontrará el valor máximo y mínimo. Ingrese su número deseado.

Para verificación de tipos (sin ningún tipo de Rango)
Antes de validar/comprobación de un rango particular de números Conectar a la vista de diseño de la vista de marcado .A continuación: -

Ver> Herramientas> Validación

Ahora Arrastre en CompareValidator a su página de diseño donde desea mostrar el mensaje de error (por supuesto, si el usuario está ingresando texto). ahora haga clic en su control CompareValidator. Haga clic derecho y seleccione propiedades. En la ventana Propiedades (generalmente se abre debajo de la barra de solución), seleccione MENSAJE DE ERROR. Escriba: -

El valor debe ser un número.

opción ControlToValidate Ahora localizar y escribir su nombre en él ID del control (de forma alternativa también se puede seleccionar entre desplegables) .Locate la opción del operador y escribir DataTypeCheck (alternativamente también se puede seleccionar entre desplegables) en ella .Again localizar la opción Tipo y escriba Entero en ella.

Eso es sentarse.

Alternativamente se puede escribir el siguiente código en su página aspx: - <% - para validar sin ningún rango -%>

0

doble clic en el botón y utilice el código siguiente: -

protected void button_click(object sender,EventArgs e) 
{ 
int parsedValue; 
if(int.TryParse(!txt.Text,out parsedValue)) 
{ 
Label.Text = "Please specify a number only !!"; //Will put a text in a label so make  
    //sure     
    //you have a label 
} 
else 
    { 
    // do what you want to 
    } 
Cuestiones relacionadas