Percorso immagini in database

giovedì 14 settembre 2006 - 17.19

bradipo Profilo | Newbie

ciao a tutti, approfitto per salutarvi e fare i complimenti agli autori del sito per l'ottimo lavoro visto che mi sono appena iscritto
vengo al mio problema, premetto che mi sono avvicinato da poco sia a asp.net che mysql
Il problema è:
se voglio inserire nel database il percorso alle immagini e poi voglio mostrare queste immagini in un GridView come cavolo faccio???
ho collegato il database alla pagina asp.net con odbc, ma ovviamente mi visualizza il testo del percorso e non le immagini
mi rendo conto che la domanda è abbastanza generalizzata ma mi servirebbe una spiegazione, come dire, teorica, e magari, se c'è qualche anima pia, anche un esempio
grazie ciao

freeteo Profilo | Guru

ciao,
il gridview ti aiuta molto in questo caso , perche' ha gia 1 template pronto per i campi come questo, ovvero la colonna "Imagefield":
<asp:GridView runat="server" ID="griglia"> <Columns> <asp:ImageField DataImageUrlField="campoPathImmagine" />

altrimenti puoi decidere di avere una colonna che sia diciamo "html puro" dove costruisci tu il tag img:
<asp:GridView runat="server" ID="griglia"> <Columns> <ItemTemplate> <img src='<%# Eval("campoPathImmagine") %>' /> </ItemTemplate>

il risultato è praticamente lo stesso solo che nel 2do caso hai maggiore controllo sull'html generato, ma nel caso della sola immagine il 1mo è piu veloce
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

bradipo Profilo | Newbie

ciao grazie per la tua risposta
ho provato e funziona, ovviamente!, ma ho un problema :)
ti posto il codice con il quale realizzo il gridView

- nel form -

<asp:GridView ID="idGridView" CellPadding="3" runat="server">
<Columns>
<asp:ImageField DataImageUrlField="immagini"></asp:ImageField>
</Columns>
</asp:GridView>

- nel file behind -

public partial class mostraDati : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
private const string NomeStringaConnessione = "Driver={MySQL ODBC 3.51 Driver};" +
"Server=localhost;Database=test;uid=root;pwd=miaPassword;option=3";
protected override void OnInit(EventArgs e)
{
base.OnInit(e);

using (OdbcConnection NomeConnessione = new OdbcConnection(NomeStringaConnessione))
using (OdbcCommand NomeComando = new OdbcCommand("SELECT * FROM names", NomeConnessione))
{
NomeConnessione.Open();
idGridView.DataSource = NomeComando.ExecuteReader(
CommandBehavior.CloseConnection |
CommandBehavior.SingleResult);
idGridView.DataBind();
}
}
}

ora, il problema è che mi visualizza prima la colonna con l'immagine e poi il gridview completo con gli altri campi, compreso il percorso dell'immagine.
Insomma, non so come controllare la situazione
ciao grazie

n.b
la seconda soluzione mi da questo errore:

System.Web.UI.WebControls.DataControlFieldCollection must have items of type 'System.Web.UI.WebControls.DataControlField'. 'ItemTemplate' is of type 'System.Web.UI.HtmlControls.HtmlGenericControl'

freeteo Profilo | Guru

ciao,
si la seconda soluzione aveva 1errore di "copia-incolla" ma ti devi far aiutare dall'intellisense!!!

Cmq per il tuo problema che visualizza troppe colonne, devi inserire tutte le colonne che ti interessano a mano, e mettere l'attributo [autogeneratecolumns="false"] nel tag del GridView:

<asp:GridView AutoGenerateColumns="false" runat="server" id="griglia" > <Columns> <asp:ImageField DataImageUrlField="campoimmagine" /> <asp:BoundField DataField="campo1" /> <asp:BoundField DataField="campo2" /> <asp:TemplateField> <ItemTemplate> <%# Eval("campo3") %> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
cmq ci sono vari tipi di colonne: BoundField , ImageField ,CheckBoxField etc.... gaurdatele 1po e poi decidi qual'e' quella piu giusta...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

bradipo Profilo | Newbie

grazie
ciao
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5