Foros del Web » Programación para mayores de 30 ;) » .NET »

Como valido un textbox en asp.net a solo numeros?

Estas en el tema de Como valido un textbox en asp.net a solo numeros? en el foro de .NET en Foros del Web. Hola Tengo un textbox y solo quiero que me valide a que sean solo numeros lo que halla en el textbox, esto que lo haga ...
  #1 (permalink)  
Antiguo 10/05/2004, 09:21
 
Fecha de Ingreso: septiembre-2003
Ubicación: colombia
Mensajes: 374
Antigüedad: 20 años, 7 meses
Puntos: 0
Como valido un textbox en asp.net a solo numeros?

Hola

Tengo un textbox y solo quiero que me valide a que sean solo numeros lo que halla en el textbox, esto que lo haga cuando haga un textchanged con autopostback = true.

o con un if como hago la instruccion para que me salga un msgbox diciendo que no se digitaron numeros...(el msgbox ya lo tengo configurado para asp.net)

mil gracias por la ayuda que puedan darme
__________________
J-.-`.::
  #2 (permalink)  
Antiguo 10/05/2004, 09:43
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola
Si quieres hacer la comprobación con el textChanged, hazlo con javascript: no es muy eficiente hacer un viaje de ida y vuelta al servidor cada vez que se introduce un caracter ...
De todas formas yo lo haria con un regularExpressionValidator, pero ahora mismo no me acuerdo de cual era la expresion regular para introducir solo numeros, echa un vistazo aqui:

http://msdn.microsoft.com/library/de...l/regexnet.asp

Salu2
  #3 (permalink)  
Antiguo 10/05/2004, 10:21
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
If Not IsNumeric (TextBox1.Text) Then
Response.Write("Solo deben ser numeros")
Else
Response.Write("Haz introducido numeros")
End If
Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 10/05/2004, 10:37
 
Fecha de Ingreso: septiembre-2003
Ubicación: colombia
Mensajes: 374
Antigüedad: 20 años, 7 meses
Puntos: 0
Gracias RootK

Eso era todo lo que necesitaba, funciona perfecto con el msgbox

gracias y gracias.
__________________
J-.-`.::
  #5 (permalink)  
Antiguo 10/05/2004, 10:41
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Aprovecho para recordar y para informar a los que no lo saben que tal como IsNumeric existen otras funciones cuyos objetivos son similares,como IsNull,IsDate,etc etc
Saludos a todos
  #6 (permalink)  
Antiguo 10/05/2004, 11:23
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Eso era todo lo que necesitaba
  #7 (permalink)  
Antiguo 10/05/2004, 13:22
Avatar de Rbkrr  
Fecha de Ingreso: mayo-2002
Ubicación: Tamps. Mx
Mensajes: 277
Antigüedad: 21 años, 11 meses
Puntos: 0
Oigan y si necesito que sean Alfanumericos (numeros y letras) y que no me acepte caracteres raros como: ?§=¿¨Ç**^¨¡', etc.

Alguen sabe ? alguien?
__________________
:adios:
  #8 (permalink)  
Antiguo 11/05/2004, 10:57
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
RegularExpressionValidator
  #9 (permalink)  
Antiguo 11/05/2004, 11:22
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Ademas, la ventaja de utilizar un regularExpressionValidator en lugar de utilizar isNumeric, es que con el validator normalmente la primera validación se hace en el cliente, con lo cual, resulta bastante mas rapido (y mas agradable)

Salu2
  #10 (permalink)  
Antiguo 11/05/2004, 21:10
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 21 años, 11 meses
Puntos: 7
Aca les paso lo que yo uso... un DecBox...

Código PHP:
Imports System
Imports System
.Web
Imports System
.Web.UI
Imports System
.Web.UI.WebControls
Imports System
.ComponentModel
Imports System
.Text

<DefaultProperty("Text"), ToolboxData("<{0}:decbox runat=server CssClass=cssTextBoxDerecha></{0}:decbox>")> Public Class DecBox
    Inherits System
.Web.UI.WebControls.TextBox
    
'Modificado para agregar tres propiedades:
    '   
IncluirValidacion(Booleanque dice si se validara que el texto sea numerico o no)
    
'   Decimales(Integer, solo se aplica cuando IncluirValidacion es True para formateo de Decimales)
    '   
ValorPreDefinido(Decimalvalor default cuando IncluirValidacion es True)
    
'Esto lo pusimos en el onChange

    Protected Overrides Sub Render(ByVal output As HtmlTextWriter)
        Dim str_JScript As String
        MyBase.Attributes.Add("onkeypress", "javascript:TeclaDecimal();")
        If Me._IncluirValidacion Then
            str_JScript = "javascript:ChequearNumero(this," & Me._Decimales.ToString & "," & Me._ValorPreDefinido.ToString & ");"
            MyBase.Attributes.Add("onchange", str_JScript)
        End If
        MyBase.Render(output)
    End Sub

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        Dim str_enter As String = Environment.NewLine
        Dim stb_OnKeyPress As New StringBuilder, stb_OnChange As New StringBuilder
        Dim pg As System.Web.UI.Page
        With stb_OnKeyPress
            .Append("<script language='
javascript'>")
            .Append(str_enter)
            .Append("function TeclaDecimal() {")
            .Append(str_enter)
            .Append("var sKey;")
            .Append(str_enter)
            .Append("sKey = String.fromCharCode(window.event.keyCode);")
            .Append(str_enter)
            .Append("if (!((sKey >= '
0' && sKey <= '9') || (sKey == '.'))) { window.event.keyCode = 0; } ")
            .Append(str_enter)
            .Append("}")
            .Append(str_enter)
            .Append("</script>")
        End With
        With stb_OnChange
            .Append("<script language='
javascript'>")
            .Append(str_enter)
            .Append("function ChequearNumero(fieldName, decimals, mdefault) {")
            .Append(str_enter)
            .Append(" if (isNaN(fieldName.value)) {")
            .Append(str_enter)
            .Append("    fieldName.value=mdefault;")
            .Append(str_enter)
            .Append(" } else {")
            .Append(str_enter)
            .Append("    timeshundred = parseFloat(fieldName.value * Math.pow(10, decimals));")
            .Append(str_enter)
            .Append("    integervalue = parseInt(parseFloat(fieldName.value) * Math.pow(10, decimals));")
            .Append(str_enter)
            .Append("    if (timeshundred != integervalue) {")
            .Append(str_enter)
            .Append("        fieldName.value=mdefault;")
            .Append(str_enter)
            .Append("   }")
            .Append(str_enter)
            .Append(" }")
            .Append(str_enter)
            .Append("}")
            .Append(str_enter)
            .Append("</script>")
        End With
        pg = CType(HttpContext.Current.Handler, System.Web.UI.Page)
        If Not pg.IsClientScriptBlockRegistered("DecBoxKP") Then pg.RegisterClientScriptBlock("DecBoxKP", stb_OnKeyPress.ToString())
        If Not pg.IsClientScriptBlockRegistered("DecBoxOC") Then
            If Me._IncluirValidacion Then
                pg.RegisterClientScriptBlock("DecBoxOC", stb_OnChange.ToString())
            End If
        End If
    End Sub

#Region "Private Members"
    Private _IncluirValidacion As Boolean = False
    Private _Decimales As Int32 = 0
    Private _ValorPreDefinido As Double = 0
#End Region

#Region "Properties"
    '
Si TRUEcualquier valor no numerico se reemplazara con ValorPreDefinido
    
Public Property IncluirValidacion() As Boolean
        Get
            
Return Me._IncluirValidacion
        End Get
        Set
(ByVal Value As Boolean)
            
Me._IncluirValidacion Value
        End Set
    End Property

    
'Numero de decimales aceptados como maximo cuando IncluirValidacion=TRUE
    Public Property Decimales() As Int32
        Get
            Return Me._Decimales
        End Get
        Set(ByVal Value As Int32)
            Me._Decimales = Value
        End Set
    End Property

    '
Valor que reemplazara valores no numericos cuando IncluirValidacion=TRUE
    
Public Property ValorPreDefinido() As Double
        Get
            
Return Me._ValorPreDefinido
        End Get
        Set
(ByVal Value As Double)
            
Me._ValorPreDefinido Value
        End Set
    End Property
#End Region
End Class 
  #11 (permalink)  
Antiguo 12/05/2004, 07:49
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Pero por dios...
¿Tan raro suena regularExpressionValidator?????
¿que es todo eso del ultimo post?
¿tanto codigo solo para ver si un campo es numerico?

jaja

Salu2
  #12 (permalink)  
Antiguo 12/05/2004, 09:21
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Me imagino que hizo una librería para que escriba código javascript en la página del cliente para que despues ya lo mande a llamar directamente y no tenga que estarlo escribiendo en cada una de las páginas.

Cita:
tanto codigo solo para ver si un campo es numerico
Tal vez quizo crear su custom function en vez de tomar la que ya existe o no Mickel ?

Saludos
  #13 (permalink)  
Antiguo 12/05/2004, 13:43
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 21 años, 11 meses
Puntos: 7
No es un custom function, es un user control. Por si a alguien le interesa...
__________________
No tengo firma ahora... :(
  #14 (permalink)  
Antiguo 12/05/2004, 14:39
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
No es un custom function
Ya sé que es un user control friend. .. lo que pasa es que la nombré custom function en el sentido de que hiciste una funcion personalizada.. es decir... que tu la hiciste...

Saludos
  #15 (permalink)  
Antiguo 12/05/2004, 15:09
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Cada maestrillo tiene su librillo ^_^
  #16 (permalink)  
Antiguo 15/12/2010, 15:44
 
Fecha de Ingreso: noviembre-2010
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Como valido un textbox en asp.net a solo numeros?

RegularExpressionValidator? que debes poner el las propiedades para q el texbox que va a validar acepte solo números?

Código HTML:
<asp:TextBox ID="txtMonto" runat = "Server" Width="20%" ></asp:TextBox> 

<asp:RegularExpressionValidator id="txtMonto_validation" runat="SERVER" 
               ControlToValidate="txtMonto" ErrorMessage="Introduzca solo caracteres numericos" ValidationExpression="¿aqui qué deberia ir?">
            </asp:RegularExpressionValidator> 
  #17 (permalink)  
Antiguo 01/07/2016, 09:55
 
Fecha de Ingreso: junio-2016
Mensajes: 5
Antigüedad: 7 años, 9 meses
Puntos: 1
Respuesta: Como valido un textbox en asp.net a solo numeros?

>Seleccionas tu textbox y das clic en la flecha de tareas de textbox
>clic en agregar extensor
>eliges fliteredTextBoxExtender y aceptar
>te direges al codigo y te posicionas en "ajaxToolkit:FilteredTextBoxExtender"
>agregas lo siguiente: FilterType="Numbers" TargetControlID="textBox1"

** TargetControlID="textBox1" es el id de tu txtbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:11.