ps: lo so che è senza User Control l'esempio, ma lo lascio qui nel caso servisse (è webform)
ps: lo so che è senza User Control l'esempio, ma lo lascio qui nel caso servisse (è webform)
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
La tua btnDownloadXLS_Click fa esattamente quello che faceva la mia prima che mettessi NPOI
Nello UC arriva fino alla fine dell'esecuzione col response end ma non fa niente, lato client dovrei vedere che il browser mi chiede se fare il download o aprire un file xls e invece picche
Idem con l'NPOI, crea il file perchè lo vedo fisicamente sul server ma poi non esegue il window.open ...
"incredibile bulk" è... è... inqualificabile
W la Ferari effetrenavenave!
il computer è un somaro veloce! (neanche tanto ndr)
Credo che il file excel non si debba creare nel disco, ma in memoria, e da lì restituirlo al chiamante. (con NPOI)
Pietro
Varrebbero entrambe le soluzioni (sia con file fisico sul server che con file in memoria) se andassero...
per la cronaca ho tolto anche lo user control e ho messo tutto in una pagina aspx... ma ancora non riesco ad avere il file xls
Allora ho ripristinato la funzione originale (no NPOI) con file in memoria e ora, senza lo UC tra le bolas, vedo delle informazioni in più:
In debug vedo che arriva liscio fino al response.End e qui tira l'eccezionecodice:Protected Sub generaexcel() Dim nomefile = "ArticoliDisponibilita" Try Dim sb = New System.Text.StringBuilder() Response.Clear() Response.Buffer = True Response.AddHeader("content-disposition", "attachment;filename=" & nomefile & ".xls") Response.Charset = "" Response.ContentType = "application/vnd.ms-excel" sb.Append("<table border='1'>") sb.Append("<tr><th>Articolo</th>") sb.Append("<th>Descrizione</th>") sb.Append("<th>UM</th>") sb.Append("<th>Disponibilità</th></tr>") For Each item As RepeaterItem In rplista.Items ... generazione righe Next sb.Append("</table>") 'style to format numbers to string Dim style As String = "<style> .textmode { } </style>" Response.Write(style) ' Response.Output.Write(sw.ToString()) Dim stringa As String = sb.ToString() stringa = Replace(stringa, Chr(128), "") 'rimuovo il simbolo dell'euro che crea casino Response.Output.Write(stringa) Response.Flush() Response.End() Catch ex As Exception End Try End Sub
Thread Interrotto.
Exception state: Non è possibile valutare l'espressione perché il codice è ottimizzato oppure un frame nativo è all'inizio dello stack di chiamate.
W la Ferari effetrenavenave!
il computer è un somaro veloce! (neanche tanto ndr)
Per capire e replicare il problema: hai un link in un user control che deve scaricarti un file excel?
Pietro
il controllo da cui parte l'esecuzione della sub è un linkbutton ma non ha neanche il postbackurl definito.... non mi direte mica che se uso un bottone al posto del linkbutton funziona? ora provo
W la Ferari effetrenavenave!
il computer è un somaro veloce! (neanche tanto ndr)
Può essere una sciochezza, ma se prima di
Catch ex As Exception
metti
Catch ex As ThreadAbortException
cambia qualcosa?
Pietro