none
No ejecuta este customvalidator RRS feed

  • Pregunta

  • Hola a todos:

    En mis páginas tengo

            <asp:RegularExpressionValidator ID="revfichero1" ForeColor="red" ValidationGroup="publicar" ControlToValidate="fufichero" Display="None" ValidationExpression="[^<>(]*" runat="server" />
            <asp:RegularExpressionValidator ID="revfichero2" ForeColor="red" ValidationGroup="publicar" ControlToValidate="fufichero" Display="None" runat="server" />
            <asp:CustomValidator ID="cvfichero1" ValidationGroup="publicar" ControlToValidate="fufichero" Display="Dynamic" ForeColor="red" runat="server" /> 
            <asp:CustomValidator ID="cvfichero2" ValidationGroup="publicar" ControlToValidate="fufichero" Display="None" ClientValidationFunction="comprobar_tamano_unfichero" runat="server" /> 
            <asp:RequiredFieldValidator ForeColor="red" ID="rfvpagina" ValidationGroup="publicar" ControlToValidate="txtpagina" Display="None" runat="server"/>
            <asp:RegularExpressionValidator ForeColor="red" ID="revpagina" ValidationGroup="publicar" ControlToValidate="txtpagina" Display="None" ValidationExpression="[^<>]*" runat="server" />
            <asp:ValidationSummary ShowMessageBox="true" ValidationGroup="publicar" ShowSummary="false" runat="server" />
            <b><asp:localize ID="locfichero" runat="server" /></b> <asp:FileUpload ID="fufichero" runat="server" /> <asp:label ID="lblfichero" visible="false" runat="server" /> <input type="checkbox" ID="chkquitarfichero" visible="false" runat="server" /><asp:Literal ID="lblquitarfichero" Visible="false" runat="server" />
    

    En codebehind llamo a cvfichero1.servervalidate

        Sub comprobar_fichero(ByVal s As Object, ByVal args As ServerValidateEventArgs) Handles cvfichero1.ServerValidate
            If fufichero.HasFile Then
                Dim strfichero As String, strextension As String, fi As FileInfo
                strfichero = fufichero.PostedFile.FileName
                strextension = Mid(strfichero, InStrRev(strfichero, "."))
                strfichero = Left(strfichero, InStrRev(strfichero, ".") - 1)
                strfichero = Left(strfichero, 21) & strextension
                Response.Write("strfichero=" & strfichero)
                fi = New FileInfo(Server.MapPath("Comun/Fotos personales/" & strfichero))
                If Not fi.Exists Then
                    args.IsValid = True
                Else
                    Dim strficheroborrar As String
                    If InStr(lblfichero.Text, " (") > 0 Then
                        strficheroborrar = Left(lblfichero.Text, InStr(lblfichero.Text, " (") - 1)
                        If strficheroborrar <> strfichero Then
                            args.IsValid = False
                        Else
                            args.IsValid = True
                        End If
                    Else
                        args.IsValid = False
                    End If
                End If
            End If
        End Sub
    

    Pero no pasa por ahí. ¿Qué puede fallar?

    Gracias de antemano

    martes, 1 de diciembre de 2015 14:43

Respuestas

  • Por dónde No pasa la ejecución de tu código?

    También te hago una modificación para recuperar la extensión de un archivo

     strextension = System.IO.Path.GetExtension(strfichero)

    y otra modificación para combinar rutas de directorios

     fi = New FileInfo(Server.MapPath(System.IO.Path.Combine("Comun/Fotos personales/", strfichero)))


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta volar.2016 martes, 1 de diciembre de 2015 18:47
    martes, 1 de diciembre de 2015 15:02
    Moderador
  • hola

    >>Pero no pasa por ahí. ¿Qué puede fallar?

    pero se esta ejecutando el post al servidor ?

    porque es una validacion del lado del servidor no del cliente, tiene que refrescarse la pagina invocando el evento al servidor para que ingrese alli

    si hay alguan otra validacion del lado del cliente que impide el post no va a ingresar

    ----

    ademas como asocias el CustomValidator  con el comprobar_fichero() ? porque no veo que asignes el OnServerValidate

    con esta propiedad indicas cual es la funcion que usa del lado del servidor

    How to: Validate with a Custom Function for ASP.NET Server Controls

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta volar.2016 martes, 1 de diciembre de 2015 18:50
    martes, 1 de diciembre de 2015 16:03
  • Hola:

    Gracias.

    Lo solucioné poniendo page.validate("publicar")

    Sergio, si pongo el combine para combinar el fichero en el server.mappth ¿es más eficiente? Supongo que sí porque se trata de  la clase IO

    Gracias otra vez

    • Marcado como respuesta volar.2016 martes, 1 de diciembre de 2015 18:50
    martes, 1 de diciembre de 2015 18:50

Todas las respuestas

  • Por dónde No pasa la ejecución de tu código?

    También te hago una modificación para recuperar la extensión de un archivo

     strextension = System.IO.Path.GetExtension(strfichero)

    y otra modificación para combinar rutas de directorios

     fi = New FileInfo(Server.MapPath(System.IO.Path.Combine("Comun/Fotos personales/", strfichero)))


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta volar.2016 martes, 1 de diciembre de 2015 18:47
    martes, 1 de diciembre de 2015 15:02
    Moderador
  • hola

    >>Pero no pasa por ahí. ¿Qué puede fallar?

    pero se esta ejecutando el post al servidor ?

    porque es una validacion del lado del servidor no del cliente, tiene que refrescarse la pagina invocando el evento al servidor para que ingrese alli

    si hay alguan otra validacion del lado del cliente que impide el post no va a ingresar

    ----

    ademas como asocias el CustomValidator  con el comprobar_fichero() ? porque no veo que asignes el OnServerValidate

    con esta propiedad indicas cual es la funcion que usa del lado del servidor

    How to: Validate with a Custom Function for ASP.NET Server Controls

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta volar.2016 martes, 1 de diciembre de 2015 18:50
    martes, 1 de diciembre de 2015 16:03
  • Hola:

    Gracias.

    Lo solucioné poniendo page.validate("publicar")

    Sergio, si pongo el combine para combinar el fichero en el server.mappth ¿es más eficiente? Supongo que sí porque se trata de  la clase IO

    Gracias otra vez

    • Marcado como respuesta volar.2016 martes, 1 de diciembre de 2015 18:50
    martes, 1 de diciembre de 2015 18:50