Far partire a comando il file selezionato in upload e non con un submi...

mercoledì 21 ottobre 2009 - 19.01

andrestu Profilo | Expert

x Gluck74 (che mi sembra uno che ci acchiappa) ma anche a tutti gli altri:

ho una pagina con diversi pulsanti i quali tutti mi provocano un submit. Nella stessa pagina ho anche un FileUpload.
Una volta selezionato un file, come faccio a far partire il submit del file solo tramite un pulsante specifico e non con tutti gli altri?

non so se mi son spiegato bene, quando io ho un file selezionato all'interno del mio upload e successivamente clicco su qualsiasi pulsante presente nella pagina il file parte con il submit della pagina, io invece desisero che parta solo con uno specifico pulsante...

balfaz Profilo | Expert

hai per caso un action nel tag form del tuo markup?,
<form action="qualchecosa" method="post">, se non fose cosi postaci un po di codice per vedere com'è
Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio

balfaz Profilo | Expert

ooopsss!!!, scusa se hai questo action nel tag prova a fare scattenare la stessa procedura magari da un postback fatto da codice
Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio

Gluck74 Profilo | Guru

>x Gluck74 (che mi sembra uno che ci acchiappa) ma anche a tutti
>gli altri:

questo mi lusinga...... grazie


per il tuo problema ci devo pensare un attimino su. Con il vecchio asp saprei risolvere in un attimo, ma con asp.net devo vedere alcune cose.
faccio una prova e poi ti dico

Gluck74 Profilo | Guru

una domanda... ma quando premi il pulsante "predestinato", deve partire solo il file, o anche gli altri valori?

andrestu Profilo | Expert

premetto che la mia è una normale pagina aspnet con qualche controllo button che ridireziona ad altre pagine e un controllo fileupload.

Quindi il comportamento è normale, nel senso che di norma qualsiasi controllo button di aspnet una volta premuto provoca un postback ed è anche normale che se ad un controllo upload viene selezionato da pagina web un file e poi successivamente viene fatto un qualsiasi postback, questo file viene automaticamente inviato.
Che poi venga processato e salvato da server-side questo è un altro discorso.
Ma la questione è che se uno seleziona nel file upload della pagina in questione un file e poi per esempio non vuole continuare la procedura e preme su un button x andare in un altra pagina, il file parte lo stesso. Si ok l'utente verrà ridirezionato in ogni caso ma deve aspettare che termini l'upload, e capite che se il file è grosso può pensare anche che la pagina sia bloccata.

Questo accade nella normalità usando i normali controlli di aspnet. X risolvere la prima cosa che mi viene in mente è agire su tutti gli altri button che possono provocare il postback e modificarli in modo che prima che inviano un potback cancellino in qualche modo il file al momento selezionato nel controllo upload, ma non credo che sia la soluzione ottimale e poi non sono pochi gli altri button.... cerco più che altro un sistema x intervenire direttamente sul controllo fileupload e far in modo che il file parta solo se "modifico qualcosa"

Pinky Profilo | Junior Member

Non ho provato nulla, ti espongo la mia idea.
Su tutti i button che non devono effettuare l'upload inserisci del javascript che "pulisce" la <input type=file>.

SE in javascript è possibile "pulire" la input e questo impedisce l'upload, allora basta che su tali bottoni valorizzi la propietà OnClientClick con "clearUpload();"

ovviamente nella pagina sarà presente tale funzione javascript che (provo a dire) cambia la propietà "value" della tua input in stringa vuota (questo non blocca il "naturale" postback del bottone, ovvero che avverrà in seguito a questa operazione sul client).

Ho buttato li... non so se fattibile...
Ciao

Gluck74 Profilo | Guru

be, se gli altri bottoni servono solo per andare in un'altra pagina, allora basterebbe mettere dei normali "button" e non "submit"
solo gli input ed i bottoni di tipo submit inviano il form. Agli altri bottoni se devono cambiare pagina metti un javascript che semplicemente cambia l'href.

comunque la soluzione di Pinky mi sembra buona

andrestu Profilo | Expert

e no non posso redirezzionare direttamente ho bisogno del postbak sia x mantenere il viewstate sia x delle modifiche che vengono fatte sul server ad ogni cambio pagina.

penso che l'unica soluzione è quella che ha proposto pinky anche se un pò grossolana...

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5