Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Salvataggio file upload
lunedì 18 maggio 2009 - 18.31
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
dandi.box
Profilo
| Junior Member
178
messaggi | Data Invio:
lun 18 mag 2009 - 18:31
Ciao a tutti, secondo voi cosa sbaglio in questo codice per il salvataggio del DB e sul server di un file
ottengo un errore qui
SqlDataSourceAllegati.DataBind();
oggetto inesistente, quindi il mio problema è nel recupeare il DataSource per fare il bind
cosa devo cambiare?
Grazie
<FIELDSET style="background-color: #e1fff2"><LEGEND>Allegati</LEGEND>
<asp:SqlDataSource id="SqlDataSourceAllegati" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [OrdiniAllegati] WHERE [PK_idOrdineAllegato] = @PK_idOrdineAllegato" SelectCommand="SELECT OrdiniAllegati.* FROM OrdiniAllegati WHERE (OrdiniAllegati.FK_idOrdineFornitore = @FK_idOrdineFornitore)" InsertCommand="INSERT INTO OrdiniAllegati(FK_idOrdineFornitore, NomeFile, Descrizione) VALUES (@FK_idOrdineFornitore, @NomeFile, @Descrizione)" UpdateCommand="UPDATE OrdiniAllegati SET NomeFile = @NomeFile, Descrizione = @Descrizione WHERE (PK_idOrdineAllegato = @PK_idOrdineAllegato)">
<DeleteParameters>
<asp:Parameter Name="PK_idOrdineAllegato" Type="Int32" />
</DeleteParameters>
<SelectParameters>
<asp:QueryStringParameter Name="FK_idOrdineFornitore" QueryStringField="id" Type="Int32" />
</SelectParameters>
<InsertParameters>
<asp:QueryStringParameter Name="FK_idOrdineFornitore" QueryStringField="id" Type="Int32" />
<asp:Parameter Name="NomeFile" />
<asp:Parameter Name="Descrizione" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="NomeFile" />
<asp:Parameter Name="Descrizione" />
<asp:Parameter Name="PK_idOrdineAllegato" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:GridView id="GridViewAllegati" runat="server" DataSourceID="SqlDataSourceAllegati" DataKeyNames="PK_idOrdineAllegato" EmptyDataText="Nessuna allegato inserito" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField ShowHeader="False">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
Text="Salva" ValidationGroup="GridScadenze"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
Text="Annulla"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
Text="Modifica"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="NomeFile" HeaderText="NomeFile" SortExpression="NomeFile" ReadOnly="True" />
<asp:BoundField DataField="Descrizione" HeaderText="Descrizione" SortExpression="Descrizione" ReadOnly="True" />
<asp:TemplateField HeaderText="Elimina" ShowHeader="False">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="False" CommandName="Delete"
ImageUrl="~/images/icon-delete.gif" />
<ajaxToolkit:ConfirmButtonExtender ID="cbe" runat="server"
TargetControlID="ImageButton1"
ConfirmText="Eliminare la voce?" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:FormView id="FormViewAllegati" runat="server" DataSourceID="SqlDataSourceAllegati" DataKeyNames="PK_idOrdineAllegato" DefaultMode="Insert">
<InsertItemTemplate>
<table>
<tr>
<td>
descrizione
</td>
<td>
file
</td>
</tr>
<tr>
<td>
<asp:TextBox ID="TextBoxDescrizioneAllegato" runat="server"></asp:TextBox>
</td>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" />
</td>
</tr>
</table>
<asp:LinkButton ID="InsertAllegatoButton" runat="server" OnClick="InsertAllegatoButton_Click"
Text="Inserisci"></asp:LinkButton>
</InsertItemTemplate>
</asp:FormView>
</FIELDSET>
protected void InsertAllegatoButton_Click(object sender, EventArgs e)
{
string path = Request.PhysicalApplicationPath;
path += "documenti\\" + Request.QueryString["id"] + "\\";
Directory.CreateDirectory(path);
//Directory.CreateDirectory(filePath);
FileUpload FileUpload1 = (FileUpload)FormViewAllegati.FindControl("FileUpload1");
TextBox TextBoxDescrizioneAllegato = (TextBox)FormViewAllegati.FindControl("TextBoxDescrizioneAllegato");
// controlliamo se il controllo FileUpload1
// contiene un file da caricare
if (FileUpload1.FileName.ToString().Length > 0)
{
string nomeFile = FileUpload1.FileName;
nomeFile = nomeFile.Replace("'", " ");
path = path + TextBoxDescrizioneAllegato.Text.ToString().Replace("'", " ") + '@' + nomeFile;
FileUpload1.SaveAs(path);
SqlDataSource SqlDataSourceAllegati = (SqlDataSource)FormViewAllegati.FindControl("SqlDataSourceAllegati");
SqlDataSourceAllegati.DataBind();
GridView GridViewAllegati = (GridView)FormViewAllegati.FindControl("GridViewAllegati");
GridViewAllegati.DataBind();
}
}
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mar 19 mag 2009 - 09:30
Ciao,
se il datasource è associato alla griglia devi richiamare il databind della griglia, non del datasource
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
mar 19 mag 2009 - 12:04
Ma come faccio a "trovare" l'oggetto griglia nella pagina??
FindControl associato a cosa?? (utilizzando la struttura HTML postata precedentemente)
Grazie mille
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mar 19 mag 2009 - 12:10
Dovresti poter accedere al controllo semplicemente utilizzando il suo nome (GridViewAllegati)
Quando crei gli oggetti il designer di visual studio crea automaticamente delle variabili associate ai controlli (questo è valido solo per i controlli inseriti direttamente dentro alla pagina, non per sottocontrolli inseriti ad esempio nell'item template di un repeater per cui serve il findcontrol)
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Torna su
Stanze Forum
Elenco Threads
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 !