Gridview image db

martedì 18 aprile 2006 - 10.35

car_79 Profilo | Newbie

Salve a tutti!

Problema:
Ho creato un sqldatasource che mi estrae una tabella dove ho una colonna di tipo image

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:dbConnectionString %>"
SelectCommand="SELECT IDArticolo,Immagine FROM [tabella]">
</asp:SqlDataSource>

Ho associato l'sqldatasource ad un gridview e per la colonna image ho inserito una colonna al gridview di tipo ImageField

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="IDArticolo" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="IDArticolo" HeaderText="IDArticolo" ReadOnly="True"
SortExpression="IDArticolo" />
<asp:ImageField DataImageUrlField="Immagine">
</asp:ImageField>
</Columns>
</asp:GridView>

come mai non mi visualizza nessuna immagine?

alx_81 Profilo | Guru

Credo che quella proprietà serva a definire il pattern della proprietà dataimageurlformatstring oppure identifiche un Url a cui puntare (ad esempio images/01.jpg), in quanto definisce il binding con la proprietà ImageUrl di ogni imagefield..

Al contrario, se non ho capito male, tu passi proprio un campo image all'imagefiled del datagridview..
Quindi se vuoi visualizzarlo, o metti il path di un immagine, oppure fai una paginetta aspx che ti fa la binarywrite della tua immagine (facendo la select sulla tabella per la chiave di ogni riga) e nell'url del tuo datagridview prova a mettere quell'aspx (non ho mai provato, ma potrebbe funzionare)..

in poche parole, per ogni riga del datagridview tu avrai una chiave.
Ogni proprietà dataimageurl imposti un aspx con un querystring che passa la chiave in questione.
Nella paginetta aspx nuova fai la select che ti torna l'immagine per questa chiave.
Fai la response.binarywrite del campo image.

prova e fammi sapere..
non so se è il metodo più ortodosso.. =)
ciao!
Alx81 =)

car_79 Profilo | Newbie

grazie alx_81 funziona perfettamente, ma pensi che questa soluzione porta una degradazione delle prestazioni oppure è meglio usare la path

alx_81 Profilo | Guru

come su ogni pagina web, più immagini ci sono, più si riducono le prestazioni sul render della pagina stessa..
se le immagini sono grandi, poi peggiora ulteriormente.. alla fine non cambia molto a mio avviso.. anche se puntassi al path di un'immagine..
alla fine il render viene fatto comunque..
Alx81 =)
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