Problema con gridview e fileupload

giovedì 16 ottobre 2008 - 17.16

fannyxxx Profilo | Newbie

Ciao a tutti!

Sto diventando pazza! Non riesco a fare una cosa. In pratica, ho un gridview che mi restituisce i risultati da database. Sull'ultima colonna del mio gridview c'è un FileUpload.
Vi posto il codice che uso nel file .cs:

codice:
protected void UploadButton_Click(object sender, EventArgs e)
{
// Save the uploaded file to an "Uploads" directory
// that already exists in the file system of the
// currently executing ASP.NET application.
// Creating an "Uploads" directory isolates uploaded
// files in a separate directory. This helps prevent
// users from overwriting existing application files by
// uploading files with names like "Web.config".
string saveDir = @"\immagini\usato\";

// Get the physical file system path for the currently
// executing application.
string appPath = Request.PhysicalApplicationPath;

// Before attempting to save the file, verify
// that the FileUpload control contains a file.
if (FileUpload1.HasFile)

{
string savePath = appPath + saveDir +
Server.HtmlEncode(FileUpload1.FileName);

// Call the SaveAs method to save the
// uploaded file to the specified path.
// This example does not perform all
// the necessary error checking.
// If a file with the same name
// already exists in the specified path,
// the uploaded file overwrites it.
FileUpload1.SaveAs(savePath);

// Notify the user that the file was uploaded successfully.
UploadStatusLabel.Text = FileUpload1.FileName+" caricato correttamente.";

}
else
{
// Notify the user that a file was not uploaded.
UploadStatusLabel.Text = "Devi specificare un file!";
}
}



e questo invece è quello che ho all'interno del GridView:

codice:
<asp:TemplateField HeaderText="Carica foto">
<EditItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" CssClass="inputsubmit1" />

<br /><br />

<asp:Button id="UploadButton"
Text="Carica file"
onClick="UploadButton_Click"
runat="server" CssClass="inputsubmit1">
</asp:Button>

<hr />

<asp:Label id="UploadStatusLabel"
runat="server">
</asp:Label>
</EditItemTemplate>
<ItemTemplate>

</ItemTemplate>
</asp:TemplateField>



Ora... se inserisco il UploadFile fuori dal GridView funziona tutto perfettamente... ma se lascio all'interno del gridview mi vien fuori questo errore di compilazione:


codice:Errore di compilazione
Descrizione: Errore durante la compilazione di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il codice sorgente.

Messaggio di errore del compilatore: CS0103: Il nome 'FileUpload1' non esiste nel contesto corrente.

Errore nel codice sorgente:



Riga 39: // Before attempting to save the file, verify
Riga 40: // that the FileUpload control contains a file.
Riga 41: if (FileUpload1.HasFile)
Riga 42:
Riga 43: {






Come faccio a risolvere? Penso che basterebbe indirizzare correttamente FileUpload1 nel file .cs ... ma come si fa?

Ragazzi aiutatemi perché ci sto perdendo la testa... Grazie a chi mi darà una mano!
Un bacio!
Fanny

balfaz Profilo | Expert

ricorda che una volta che il fileupload si trova dentro di un gridview, devi primo far riferimento al contenitore (gridview) e dopo al oggetto, dipenderà anche dell'evento che usi per fare la valutazione del Fileupload.

dovari fare una cosa del genere
nel evento rowcommand
dim FleUplX as fileupload = ctype(TuoGridView.Cells(cella dove si trova il controllo).FindControl("TuoFileUpload"), fileupload)

"Ci sono due tipi di pazzi, quelli che dicono pazzie e quelli che le fanno diventare una realtà."
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5