DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   ASP.NET (http://www.daniweb.com/forums/forum18.html)
-   -   FileUpload automatically upload after set filepath (http://www.daniweb.com/forums/thread202029.html)

culebrin Jul 6th, 2009 1:22 pm
FileUpload automatically upload after set filepath
 
Hi,

I have a gridview that has a fileupload (fupRespuesta) control in a itemtemplate field, I need to enable automatic upload after file is selected.

Then I added a imageButton (imgRespuesta) in the template field and added its event with addhandler...

Well my problem is that when I uncomment the red line, the event of the image button don't fire (I can't understand why)

I need it work, or some other idea to do it.

Heres my code:

Private Sub gv_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvPropuestasDiagnosticoListar.RowCreated

Dim imgRespuesta As New ImageButton
        Dim fupRespuesta As New FileUpload
        imgRespuesta = e.Row.FindControl("imgProDiagUploadRespuesta")
        fupRespuesta = e.Row.FindControl("fupvcProDiaRutaRespuesta")
        If Not imgRespuesta Is Nothing And Not fupRespuesta Is Nothing Then
            AddHandler imgRespuesta.Click, AddressOf img_Click
            'imgRespuesta.Attributes.Add("Style", "Display:none")
            'fupRespuesta.Attributes.Add("onchange", "return document.getElementById('" + imgRespuesta.ClientID + "').click();")
        End If
End Sub

Private Sub img_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
        Dim fup As FileUpload
        Dim img As ImageButton
        fup = CType(sender.Parent.Parent, GridViewRow).FindControl("fupvcProDiaRutaPropuesta")
        img = CType(sender.Parent.Parent, GridViewRow).FindControl("imgProDiagUploadPropuesta")
        If fup.HasFile = True Then
            img.Attributes.Remove("Style")
            Dim fullpath = IO.Path.GetFullPath(fup.FileName)
            Dim name = IO.Path.GetFileName(fullpath)
            fup.SaveAs(Server.MapPath("~") + "\Documentos\" & name.ToString)
        End If
    End Sub

Ramesh S Jul 7th, 2009 3:51 am
Re: FileUpload automatically upload after set filepath
 
Write the following code in RowDataBound event of the GridView control. This code is to attach onChange event of the file upload control to the click event of image button control.

imgRespuesta = e.Row.FindControl("imgProDiagUploadRespuesta")fupRespuesta = e.Row.FindControl("fupvcProDiaRutaRespuesta")

fupRespuesta.Attributes.Add("onchange", "return document.getElementById('" + imgRespuesta.ClientID + "').click();")

Write this code in RowCreated event of the GridView. This code is to set style for image button and add handler to it.

imgRespuesta = e.Row.FindControl("imgProDiagUploadRespuesta")
imgRespuesta.Attributes.Add("Style", "Display:none")
AddHandler imgRespuesta.Click, AddressOf img_Click

I have tested this way in C#. It is working for me. I can able to reach img_Click event if a file is browsed and selected.

culebrin Jul 8th, 2009 2:57 pm
Re: FileUpload automatically upload after set filepath
 
I tried it, and it reaches the event, as you said, but the problem now is that the HasFile property of the FileUpload control is false when after I select the file... And I don't know why...

I hope you can help me with this...



Private Sub imgEnvio_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
        Dim fup As FileUpload
        Dim img As ImageButton
        fup = CType(sender.Parent.Parent, GridViewRow).FindControl("fupvcProDiaRutaPropuesta")
        img = CType(sender.Parent.Parent, GridViewRow).FindControl("imgProDiagUploadPropuesta")
        If fup.HasFile Then <-- this is not true after I select the file
            img.Attributes.Remove("Style")
            Dim fullpath = IO.Path.GetFullPath(fup.FileName)
            Dim name = IO.Path.GetFileName(fullpath)
            fup.SaveAs(Server.MapPath("~") + "\Documentos\" & name.ToString)
        End If
    End Sub

Quote:

Originally Posted by Ramesh S (Post 910451)
Write the following code in RowDataBound event of the GridView control. This code is to attach onChange event of the file upload control to the click event of image button control.

imgRespuesta = e.Row.FindControl("imgProDiagUploadRespuesta")fupRespuesta = e.Row.FindControl("fupvcProDiaRutaRespuesta")

fupRespuesta.Attributes.Add("onchange", "return document.getElementById('" + imgRespuesta.ClientID + "').click();")

Write this code in RowCreated event of the GridView. This code is to set style for image button and add handler to it.

imgRespuesta = e.Row.FindControl("imgProDiagUploadRespuesta")
imgRespuesta.Attributes.Add("Style", "Display:none")
AddHandler imgRespuesta.Click, AddressOf img_Click

I have tested this way in C#. It is working for me. I can able to reach img_Click event if a file is browsed and selected.


culebrin Jul 13th, 2009 8:21 pm
Re: FileUpload automatically upload after set filepath
 
Hi,

Using ajax, I manage to solve this, registering the imagebutton for postback in the scriptmanager... and that's it!


All times are GMT -4. The time now is 4:38 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC