Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Gridview con icone file

    Salve a tutti,
    sto realizzando un sistema per uploadare file sul sito e tramite un gridview visualizzo tutti i file caricati (e registrati nel DB). Accanto a ciscuna riga volevo far comparire l'icona per indicare il tipo di file (PDF, doc, ecc..).

    Ora so come inserire un'immagine nel gridview, ma non so come (e dove) impostare le condizioni di scelta :master:

    Qualcuno puo' darmi qualche suggerimento? Ho porvato a cercare qualche post sull'argomento ma non ne ho trovati...

    Grazie a tutti.
    Il mio ultimo libro:
    Giorni di Follia. Presenze inquietanti a Pescara.
    www.giornidifollia.it

  2. #2
    Devi farlo RowDatabound . . .

    Ovvero l'evento che si verifica prima che vengano bindati i dati sulla griglia. . .

    Li puoi customizzare come vuoi il tuo gridview

  3. #3
    Ciao e grazie della dritta. Allora ho capito perfettamenet il concetto ma mi manca qualcosa!
    Dunque ho inserito un TemplateField nelle columns del mio gridview con un controllo Image:

    codice:
    <asp:TemplateField HeaderText="Documento">
        <EditItemTemplate>
            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("Documento") %>'></asp:TextBox>
        </EditItemTemplate>
        <ItemTemplate>
            <asp:Image ID="imgIconaFile" runat="server" Height="80px" ImageUrl='<%# Eval("Documento", "{0}") %>'
                Width="70px" />
        </ItemTemplate>                              
    </asp:TemplateField>
    Poi dietro tuo suggerimento ho assegnato l'evento RowDataBound al gridview, ma a questo punto non so come "raggiungere" la colonna ItemTemplates e assegnargli l'immagine che voglio. Qualche suggerimento? Te ne sarei grato.

    codice:
    Protected Sub grwDownload_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
    
            Dim Item As Integer = e.Row.DataItemIndex
    
    End Sub
    Il mio ultimo libro:
    Giorni di Follia. Presenze inquietanti a Pescara.
    www.giornidifollia.it

  4. #4
    Devi usare il comando findcontrol ed eseguire dei cast . . . Guarda stò esempio se può esserti chiaro . . .

    Quà io setto una function Javascript sul comando di delete che stà sul gridview

    codice:
    protected void GridViewAlbum_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowIndex > -1)
            {
                LinkButton linkBtn = (LinkButton)e.Row.Cells[5].FindControl("LinkButtonDelete");
                linkBtn.OnClientClick = "return confirm('Attenzione : l\\'album \\' " + DataBinder.Eval(e.Row.DataItem, "ID_ALBUM").ToString() + " \\' e tutte le sue foto verrano eliminate. PROSEGUIRE ?')";
                linkBtn.CommandArgument = DataBinder.Eval(e.Row.DataItem, "ID_ALBUM").ToString();
            }
        }

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Si può fare in tanti modi; uno lo ha suggerito DarioN1

    Un altro, preso da un vecchissimo esempio che forse può essere utile, è visualizzare una immagine a seconda del tipo di campo.
    Nel TemplateColumn, dentro il ItemTemplate metto

    <%#Immagine(CBool(Eval("si_no")))%>

    dove immagine è una funzione e CBool(Eval("si_no")) è il suo argomento

    la funzione fa

    Protected Function Immagine(ByVal Campo As Boolean) As String
    If Campo Then
    Return "[img][/img]"
    Else
    Return "[img][/img]"
    End If

    End Function

    io passerei il nome del file, nella funzione basta trovare l'estensione e da lì il nome immagine
    Pietro

  6. #6
    ragazzi grazie a tutti dell'aiuto, alla fine ho scelto il metodo indicatomi da pietro09 perchè... cavolo mi intrippava alla grande! Non avevo mai pensato che si potesse fare una cosa del genere e siccome l'ho ritenuta utile per svariate situazioni ho provato a impostarla. E ci sono riuscito. Ecco il risultato per i posteri:

    codice:
    <asp:TemplateField HeaderText="Documento">
        <EditItemTemplate>
            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("Documento") %>'></asp:TextBox>
        </EditItemTemplate>
        <ItemTemplate>
            <asp:Image ID="imgIconaFile" runat="server" Height="38px" ImageUrl='<%#DeterminaIcona("{0}") %>'
                Width="34px" />
        </ItemTemplate>                              
    </asp:TemplateField>
    
    
    ---- Questa la funzione ------
    
        Protected Function DeterminaIcona(ByVal Nomefile As String) As String
            
            Dim TipoFile As String = Nomefile.Substring(Nomefile.Length - 3, 3)
            
            If TipoFile.ToUpper = "PDF" Then
                Return "Immagini/Icone/pdf.gif"
            Else
                Return "Immagini/Icone/generic.gif"
            End If
            
        End Function
    Il mio ultimo libro:
    Giorni di Follia. Presenze inquietanti a Pescara.
    www.giornidifollia.it

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ma scusa, ti funziona? :master: a me no

    se dentro la funzione faccio response.write(Nomefile) mi dà sempre {0}

    a me funziona mettendo

    ImageUrl='<%#DeterminaIcona(cstr(eval("nome"))) %>'

    Pietro

  8. #8
    Me ne sono accorto pure io !!! Ma solo adesso...

    Sull'onda dell'entusiasmo mi ero lasciato trascinare... aspè provo a fare come dici tu perchè anche io ottengo sempre quel valore {0}

    Il mio ultimo libro:
    Giorni di Follia. Presenze inquietanti a Pescara.
    www.giornidifollia.it

  9. #9
    Perfetto, funziona come dicevi. Nel mio caso con:

    DeterminaIcona(cstr(eval("Documento")))

    GRAZIEEEE



    ( )
    Il mio ultimo libro:
    Giorni di Follia. Presenze inquietanti a Pescara.
    www.giornidifollia.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.