none
servervalidate con controles dinámicos RRS feed

  • Pregunta

  • Hola:

    Tengo varios controles dinámicos:

                        fu = New FileUpload
                        tc2.Controls.Add(fu)
                        fu.ID = "fufichero" & intnumero
                        tr2.Controls.Add(tc2)
    


    Me gustaría hace un servervalidate como:

        Sub Comprobar_tamano_fichero(ByVal s As Object, ByVal args As ServerValidateEventArgs) Handles cvfichero2.ServerValidate
            If fufichero.HasFile Then
                Dim strfichero As String
                strfichero = fufichero.PostedFile.FileName
                If strfichero.Length <= hftamanoficheroprogreso.Value Then
                    args.IsValid = True
                Else
                    Dim fi As FileInfo
                    fi = New FileInfo(Server.MapPath("Ficheros_tamano_maximo_superado/") & strfichero)
                    If fi.Exists Then
                        args.IsValid = True
                        My.Computer.FileSystem.DeleteFile(Server.MapPath("Ficheros_tamano_maximo_superado/" & strfichero))
                    Else
                        args.IsValid = False
                    End If
                End If
            End If
        End Sub
    

    pero por cada control dinámico. No sé si puedo averiguar el nombre del fichero del control dinámico desde el servervalidate, como si fuese un control estático, en este caso fufichero.

    ¿Podéis ayudarme?

    Muchísimas gracias.

    lunes, 1 de julio de 2019 19:18

Respuestas

  • hola

    >>No sé si puedo averiguar el nombre del fichero del control dinámico desde el servervalidate,

    si el evento esta funcionando puedes usar el parametro "sender" o en tu caso el "s"

    entonces usarias

    Dim f As FileUpload = TryCast(s, FileUpload)

    lo que recomendaria es que no crees controles de esta forma, sino que uses algun contenedor como ser el Repeater para definir el control y que se creen tantos como DataSource asignes

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta volar.2016 martes, 2 de julio de 2019 9:16
    lunes, 1 de julio de 2019 23:46

Todas las respuestas

  • hola

    >>No sé si puedo averiguar el nombre del fichero del control dinámico desde el servervalidate,

    si el evento esta funcionando puedes usar el parametro "sender" o en tu caso el "s"

    entonces usarias

    Dim f As FileUpload = TryCast(s, FileUpload)

    lo que recomendaria es que no crees controles de esta forma, sino que uses algun contenedor como ser el Repeater para definir el control y que se creen tantos como DataSource asignes

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta volar.2016 martes, 2 de julio de 2019 9:16
    lunes, 1 de julio de 2019 23:46
  • Hola de nuevo:

    Uso controles dinámicos, ya que puede haber 50,100 o 300. En mi caso depende del número de publicacicones que desee el usuario.

    No sé el número exacto de controles. Si usara repeater cargaría mucho la página.

    Los creo en page_init y me van muy bien.

    ¿es una buena alternativa los repeaters, crear hasta 300 repeaters?¿Qué cambia?

    Muchas gracias.



    • Editado volar.2016 martes, 2 de julio de 2019 9:26
    martes, 2 de julio de 2019 9:21