Avatar billede fanatic Nybegynder
15. marts 2006 - 14:19 Der er 9 kommentarer

Upload dynamisk antal filer til web server.

Hej eksperter.

På dette billede ses hvordan 3 filer kan uploades på en gang
http://msdn.microsoft.com/library/en-us/dnaspp/html/uploadasp205.gif

Men hvad hvis jeg er interesseret i at trykke på en knap, og for hvert tryk få vist en ny FileUpload-kontrol placeret under den forrige. Ligesom på gmail.com når man vedhæfter filer.

Det er jo forskelligt hvor mang efiler man vil uploade fo rgang til gang. Derfor holder det ikke med et fixed antal.

Nogle gode ideer?
Avatar billede fanatic Nybegynder
15. marts 2006 - 15:15 #1
okay man kan bruge en Placeholder. Ellers nogen ideer?
Avatar billede jacknet Nybegynder
15. marts 2006 - 16:05 #2
Jeg kan ikke lige forstille mig andet end at bruge en placeholder, som du selv nævner.
Avatar billede dr_chaos Nybegynder
15. marts 2006 - 16:40 #3
du kan bruge noget i denne stil:
http://www.codeproject.com/aspnet/multiuploads.asp
Avatar billede dr_chaos Nybegynder
15. marts 2006 - 16:41 #4
Der er kun et upload felt men tilgengæld kan du vælge så mange filer som du ønsker.
Avatar billede jacknet Nybegynder
15. marts 2006 - 17:16 #5
dr_chaos:

Har du læst kommentarerne?
Der er nogle ret alvorlige problemer med at gøre det på den måde.
Som en person skriver, bør man ikke bruge koden!
Avatar billede dr_chaos Nybegynder
15. marts 2006 - 17:20 #6
havde jeg faktisk ikke set.
Avatar billede fanatic Nybegynder
15. marts 2006 - 17:56 #7
okay.. jeg vil prøve at bruge en placeholder.


Der må være noget jeg ikke har forstået. Her tilføjer jeg en kontrol til placeholderen:

    protected void  Button1_Click(object sender, EventArgs e)
    {
        PlaceHolder1.Controls.Add(new FileUpload() );
    }

Men der bliver altid kun vist een uanset hvor mange gange jeg trykker på knappen??
Avatar billede jacknet Nybegynder
15. marts 2006 - 19:19 #8
Hmm... Kan skulle tro at man kunne tilføje på den måde.
Jeg ved ikke om der er en bedre måde ellers, men her kommer en ide (i VB... sorry):

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.IsPostBack = False Then
            Me.ViewState.Add("fileuploads", -1)
        End If
    End Sub

    Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        Dim i As Integer = CInt(Me.ViewState.Item("fileuploads")) + 1

        For l As Integer = 0 To i
            Dim fu As New FileUpload

            phUploads.Controls.Add(fu)
        Next

        Me.ViewState.Item("fileuploads") = i
    End Sub


Vi holder altså hele tiden tjek på hvor mange fileupload kontroller vi har, og tilføjer så samme mængde +1 når brugeren klikker på knappen.

OG ja, hvis man har valgt nogle filer i en eller flere af fileupload kontrollerne, så ryger de når der bliver trykket på knappen. Men så vidt jeg ved er det alligevel ikke muligt at holde viewstate data på det indtastede i en fileupload.
Avatar billede fanatic Nybegynder
02. juli 2009 - 12:31 #9
Lægger I lige et svar så vi kan lukke tråden, tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester