Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/08/2009, 08:44
Avatar de lunita87
lunita87
 
Fecha de Ingreso: junio-2009
Ubicación: Zaragoza
Mensajes: 19
Antigüedad: 14 años, 10 meses
Puntos: 0
error con los tiggers de un UpdatePanel

Estoy haciendo una pagina asp en visual basic 2005

Esta pagina segun le pasas unos parametros crea x updatepanel, que creo asi:
Código:
Public Shared Function generateFileConfirmado(ByVal field As Field) As System.Web.UI.Control
        Dim ctr As System.Web.UI.Control = New System.Web.UI.Control()
        ctr.ID = "field_ctr_" & field.id

        Dim UpdatePanel1 As UpdatePanel = New UpdatePanel()
        UpdatePanel1.ID = "field_UpdatePanel_" & field.id

        Dim CheckBox1 As CheckBox = New CheckBox()
        CheckBox1.ID = "field_CheckBox_" & field.id
        CheckBox1.AutoPostBack = True
        'CheckBox1.Sorted = True
        CheckBox1.CssClass = "CheckBoxField"

        AddHandler CheckBox1.CheckedChanged, AddressOf LibraryTramitesCiudadano.CheckBox1_CheckedChanged

        Dim FileUpload1 As FileUpload = New FileUpload()
        FileUpload1.ID = "field_" & field.id
        FileUpload1.CssClass = "FileUploadField"

        Dim UpLoadFileConfirmado As LinkButton = New LinkButton()
        UpLoadFileConfirmado.ID = "field_UpLoad_" & field.id
        UpLoadFileConfirmado.Text = "Subir"
        AddHandler UpLoadFileConfirmado.Click, AddressOf LibraryTramitesCiudadano.UpLoadFileConfirmado_click

        Dim DownloadFileConfirmado As HyperLink = New HyperLink()
        DownloadFileConfirmado.ID = "field_Download_" & field.id
        DownloadFileConfirmado.Text = "Descargar"
        DownloadFileConfirmado.Target = "_ablank"
        DownloadFileConfirmado.CssClass = "HyperLinkField"

        Dim Espacio As Label = New Label()
        Espacio.ID = "field_Espacio_" & field.id
        Espacio.Text = "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp"

        Dim DeleteFileConfirmado As LinkButton = New LinkButton()
        DeleteFileConfirmado.ID = "field_Delete_" & field.id
        DeleteFileConfirmado.Text = "Eliminar"
        AddHandler DeleteFileConfirmado.Click, AddressOf LibraryTramitesCiudadano.DeleteFileConfirmado_click

        If field.defaultValue <> "" And field.defaultValue <> "[UNDEFINED]" And field.defaultValue <> "Sin Documento" And field.defaultValue <> "False" Then
            'tiene algo
            CheckBox1.Checked = True
            CheckBox1.Enabled = False
            FileUpload1.Visible = False
            UpLoadFileConfirmado.Visible = False
            DownloadFileConfirmado.NavigateUrl = "~/viewdoc.aspx?dID=" & field.defaultValue
        Else
            'no tiene nada
            FileUpload1.Enabled = False
            UpLoadFileConfirmado.Visible = False 'UpLoadFileConfirmado.Enabled = False
            DownloadFileConfirmado.Visible = False
            Espacio.Visible = False
            DeleteFileConfirmado.Visible = False
        End If

        Dim AsyncPostBackTrigger1 As AsyncPostBackTrigger = New AsyncPostBackTrigger()
        AsyncPostBackTrigger1.ControlID = "field_CheckBox_" & field.id
        AsyncPostBackTrigger1.EventName = "CheckedChanged"

        Dim PostBackTrigger2 As PostBackTrigger = New PostBackTrigger()
        PostBackTrigger2.ControlID = "field_UpLoad_" & field.id
        PostBackTrigger2.EventName = "Click"

        Dim AsyncPostBackTrigger3 As AsyncPostBackTrigger = New AsyncPostBackTrigger()
        AsyncPostBackTrigger3.ControlID = "field_Delete_" & field.id
        AsyncPostBackTrigger3.EventName = "Click"

        UpdatePanel1.ContentTemplateContainer.Controls.Add(CheckBox1)
        UpdatePanel1.ContentTemplateContainer.Controls.Add(FileUpload1)
        UpdatePanel1.ContentTemplateContainer.Controls.Add(UpLoadFileConfirmado)
        UpdatePanel1.ContentTemplateContainer.Controls.Add(DownloadFileConfirmado)
        UpdatePanel1.ContentTemplateContainer.Controls.Add(Espacio)
        UpdatePanel1.ContentTemplateContainer.Controls.Add(DeleteFileConfirmado)

        UpdatePanel1.Triggers.Add(AsyncPostBackTrigger1)
        UpdatePanel1.Triggers.Add(PostBackTrigger2)
        UpdatePanel1.Triggers.Add(AsyncPostBackTrigger3)

        ctr.Controls.Add(UpdatePanel1)

        Return ctr
    End Function


    Protected Shared Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim chk As CheckBox = sender
        Dim fu As FileUpload = sender.Parent.FindControl("field_" & sender.ID.Replace("field_CheckBox_", ""))
        Dim bo As LinkButton = sender.Parent.FindControl("field_UpLoad_" & sender.ID.Replace("field_CheckBox_", ""))

        If chk.Checked = True Then
            fu.Enabled = True
            bo.Enabled = True
        Else
            fu.Enabled = False
            bo.Enabled = False
        End If
    End Sub


    Protected Shared Sub UpLoadFileConfirmado_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim bo As LinkButton = sender
        Dim fu As FileUpload = sender.Parent.FindControl("field_" & sender.ID.Replace("field_UpLoad_", ""))

        If fu.HasFile = True Then
            Dim documento As Valor = New Valor()
            documento.idField = sender.ID.Replace("field_UpLoad_", "")

            Dim Cadena As String
            Cadena = sender.page.ClientQueryString
            Cadena = Cadena.Replace("dId=", "")
            Cadena = Cadena.Replace("&p=Consultoria", "")
            Dim did As Integer
            did = CInt(Cadena)
            Dim expe As Expediente = New Expediente()
            expe = Expediente.getExpedienteWithDid(did)

            documento.idExpediente = expe.id
            documento.ctr = fu

            documento.update()
            Dim fie As Field = New Field()
            fie = Field.getField(documento.idField)

            documento = Valor.getValor(expe, fie)
            'Cambiamos el control
            Dim chk As CheckBox = sender.Parent.FindControl("field_CheckBox_" & sender.ID.Replace("field_UpLoad_", ""))
            Dim hl As HyperLink = sender.Parent.FindControl("field_Download_" & sender.ID.Replace("field_UpLoad_", ""))
            Dim de As LinkButton = sender.Parent.FindControl("field_Delete_" & sender.ID.Replace("field_UpLoad_", ""))
            Dim es As Label = sender.Parent.FindControl("field_Espacio_" & sender.ID.Replace("field_UpLoad_", ""))

            chk.Enabled = False
            fu.Visible = False
            bo.Visible = False
            chk.Checked = True

            hl.Visible = True
            hl.NavigateUrl = "~/viewdoc.aspx?dID=" & documento.valor
            es.Visible = True
            de.Visible = True

        End If

    End Sub


    Protected Shared Sub DeleteFileConfirmado_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim de As LinkButton = sender
        Dim hl As HyperLink = sender.Parent.FindControl("field_Download_" & sender.ID.Replace("field_Delete_", ""))

        Dim documento As Valor = New Valor()

        Dim Cadena As String
        Cadena = sender.page.ClientQueryString
        Cadena = Cadena.Replace("dId=", "")
        Cadena = Cadena.Replace("&p=Consultoria", "")
        Dim did As Integer
        did = CInt(Cadena)
        Dim expe As Expediente = New Expediente()
        expe = Expediente.getExpedienteWithDid(did)

        documento.idExpediente = expe.id
        documento.idField = sender.ID.Replace("field_Delete_", "")

        documento.delete()

        'Cambiamos el control

        Dim chk As CheckBox = sender.Parent.FindControl("field_CheckBox_" & sender.ID.Replace("field_Delete_", ""))
        Dim fu As FileUpload = sender.Parent.FindControl("field_" & sender.ID.Replace("field_Delete_", ""))
        Dim bo As LinkButton = sender.Parent.FindControl("field_UpLoad_" & sender.ID.Replace("field_Delete_", ""))
        Dim es As Label = sender.Parent.FindControl("field_Espacio_" & sender.ID.Replace("field_Delete_", ""))

        chk.Enabled = True
        chk.Checked = False
        fu.Visible = True
        fu.Enabled = False
        bo.Visible = True

        hl.Visible = False
        es.Visible = False
        de.Visible = False

    End Sub
Este codigo lo uso en dos proyectos diferentes, y tengo varios problemas:

Proyecto 1:
-Cuando hago click en el check me activa y desactiva el FileUpload, pero si en alguno hay algo elejido lo borra al recargar la pagina (cosa que no quiero que haga)
-Cuando hago click en el boton subir o en eliminar, sube o elimina correctamente, y recarga el panelupload pero me recarga la pagina

Proyecto 2:
-Al tener activado en el check el AutoPostBack me carga la pagina y me da fallo al recargar, pero si lo pongo a False no me hace nada, no quiero que recargue la pagina pero quiero que valla!!!
(Este proyecto tiene el boton subir invisible y no tiene opcion de poder descargar o eliminar)

Cualquier duda avisar, ya se que me explico mal :P

Gracias por la ayuda que me podais dar

Última edición por lunita87; 10/08/2009 a las 08:25