17 messaggi dal 15 marzo 2007
Salve ...
ho questo problema..
ho una label un una gridview così:

<asp:TemplateField HeaderText="FOTO" SortExpression="ID_Prodotti">
<ItemTemplate>
<asp:Label ID="LblFile" runat="server" Visible="false" Text='<%# Eval("foto_prodotto") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

e devo recuperare il suo valore per eliminare il file.

Ho creato una sub cher si attiva al valore di un click:

Sub cancella(ByVal sender As Object, ByVal e As System.EventArgs)

Dim nomefile As String nomefile = CType(GrdProdotti.SelectedRow.FindControl("LblFile"), Label).Text
Dim percorso As String = Server.MapPath(" /public/" & nomefile & "")

File.Delete(percorso)

End Sub

ma continua a generarmi un errore del tipo:

Riferimento a un oggetto non impostato su un'istanza di oggetto.

Qualcuno può chiarirmi questa cosa?
grazie
lukaone ha scritto:
Salve ...
ho questo problema..
ho una label un una gridview così:

<asp:TemplateField HeaderText="FOTO" SortExpression="ID_Prodotti">
<ItemTemplate>
<asp:Label ID="LblFile" runat="server" Visible="false" Text='<%# Eval("foto_prodotto") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

e devo recuperare il suo valore per eliminare il file.

Ho creato una sub cher si attiva al valore di un click:

Sub cancella(ByVal sender As Object, ByVal e As System.EventArgs)

Dim nomefile As String nomefile = CType(GrdProdotti.SelectedRow.FindControl("LblFile"), Label).Text
Dim percorso As String = Server.MapPath(" /public/" & nomefile & "")

File.Delete(percorso)

End Sub

ma continua a generarmi un errore del tipo:

Riferimento a un oggetto non impostato su un'istanza di oggetto.

Qualcuno può chiarirmi questa cosa?
grazie

Ciao, io uso un metodo un po diverso (e tra l'altro in c#) che è questo:
        // Inizio del gestore per la cancellazione dei file fisici attraverso il gridview:
        protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
        {

            if (e.CommandName == "Elimina") //Con questo comando passo l'indice della riga selezionata
            {
                // Tramite il DataKey ricavo il codice univoco del record da cancellare
                int index = Convert.ToInt32(e.CommandArgument); 
                string NomeFile = GridView2.DataKeys[index].Values["PercorsoFile"].ToString();

                GridViewRow row = GridView2.Rows[index];

                // Cancello fisicamente il Pfd
                File.Delete(Server.MapPath(NomeFile));

                // Cancello il record selezionato
                GridView2.DeleteRow(index);
                GridView2.DataBind();
            }

        }

Ovvio che nel gridview devi referenziare il gestore:
OnRowCommand="GridView2_RowCommand"

e specificare il datakeynames (i campi del db interessati)

e in ultima crearti il bottone per la cancellazione (quindi devi settare a false quello creato di default "ShowDeleteButton="false")
<asp:ButtonField CommandName="Elimina" Text="elimina" />


Spero ti sia tutto piu chiaro adesso!
Modificato da ricardo78 il 28 febbraio 2011 15.43 -

Creazione Siti Vicenza
Posizionamento Siti - SEO

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.