Impaginare gridview come?

domenica 23 maggio 2010 - 15.57

basicdany Profilo | Expert

Ciao a tutti ho impaginato dei dati in una grdiview cosi:

asp:TemplateField>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%#
"~/ImageRicerca.ashx?Id=" & Eval("Id") %>' />
</ItemTemplate>
<ControlStyle Height="100px" Width="100px" />
</asp:TemplateField>

<asp:BoundField DataField="Citta" HeaderText="Citta" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="150px" HorizontalAlign="Left" />
</asp:BoundField>

<asp:BoundField DataField="Contratto" HeaderText="Contratto" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="150px" HorizontalAlign="Left" />
</asp:BoundField>

<asp:BoundField DataField="Tipologia" HeaderText="Tipologia" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="150px" HorizontalAlign="Left" />
</asp:BoundField>

<asp:BoundField DataField="Descrizione1" HeaderText="Descrizione" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="150px" HorizontalAlign="Left" />
</asp:BoundField>

<asp:BoundField DataField="DataInsert" HeaderText="Inserimento" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="150px" HorizontalAlign="Left" />
</asp:BoundField>

</Columns>
</asp:GridView>

FUNZIONA PERO VORREI METTERE I CAMPI CITTA CONTRATTO TIPOLOGIA E INSERIMENTO
UNO SOTTO 'L'ALTRO IN MODO DA AVERE LA FOTO A SINISTRA GIA COME
e impaginare e A SINISTRA I 4 CAMPI UNO SOTTO L'ALTRO A DESTRA E ALLLA FINE LA
DESCRIZIONE GIA COME:

PER RENDERTI L'IDEA COSI:

CITTA
FOTO CONTRATTRO DESCRIZIONE
TIPOLOGIA
INSERIMENTO

Grazie qualcuno puoi aiutarmi ?


Gluck74 Profilo | Guru

ciao,

tolto il fatto che non si capisce nulla dal testo che hai scritto.........

stai sbagliando metodo di impaginazione.
Non puoi impaginare come vuoi tu una griglia. la GridView è stata fatta per presentare dati in forma tabellare, se la devi sconvolgere completamente, probabilmente stai sbagliando controllo.

Io userei un semplice formView o un DetailView, o controlli semplici impaginati come vuoi tu.
Qualsiasi scelta fai, se vuoi un effetto ad elenco, ovvero come se ogni "scheda" sia una riga di una griglia, infili il controllo dentro un Repeater.


Se proprio vuoi usare una griglia invece, fai tutto come se fosse dentro una cella unica, e metti i controlli base "textbox", "label", "image" impaginati come meglio credi.


ciao ciao

basicdany Profilo | Expert

ciao, il codice postato mi visualizza le colonne da sinistra a destra e funziona, quello che voglio ottenere e quello che visualizzi da questa ricerca d'immobili: (copia il link sulla barra degli indirizzi)

http://www.progettoimmobiliaresrl.it/vetrina.aspx?pr=&ct=&c=&l=&t=&pz_min=&pz_max=&rif=&invia=avvia+ricerca

volevo usare la gridview perche credevo fosse la maniera piu semplice, consigliamo pure qualcosaltro con qualche esempio, visto che sono alle prime armi con asp.net

grazie tanto

Gluck74 Profilo | Guru

ho visto il link.

Questa è la classica visualizzazione di un repeater o controlli simili.

Non devi usare un gridview, bensì un semplice formview per crearti il tuo layout.
Dopodichè ti copi tutto quello che hai messo in <itemtemplate> del formview all'interno di un repeater.

esempio:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT * FROM [Products by Category] ORDER BY [ProductName]"> </asp:SqlDataSource> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1"> <ItemTemplate> ... ... ... ... ... ... ... ... ... </ItemTemplate> </asp:Repeater>

dove il contenuto del "form" di visualizzazione potrebbe essere anche una semplice tabella come questa:

<table> <tr> <th colspan="2"> ProductName: <asp:Label ID="ProductNameLabel" runat="server" Text='<%# Bind("ProductName") %>' /> </th> </tr> <tr> <td> CategoryName: <asp:Label ID="CategoryNameLabel" runat="server" Text='<%# Bind("CategoryName") %>' /> </td> <td rowspan="4" style="border: solid 1px gray;"> FOTO DELL'ARTICOLO </td> </tr> <tr> <td> QuantityPerUnit: <asp:Label ID="QuantityPerUnitLabel" runat="server" Text='<%# Bind("QuantityPerUnit") %>' /> </td> </tr> <tr> <td> UnitsInStock: <asp:Label ID="UnitsInStockLabel" runat="server" Text='<%# Bind("UnitsInStock") %>' /> </td> </tr> <tr> <td> Discontinued: <asp:CheckBox ID="DiscontinuedCheckBox" runat="server" Checked='<%# Bind("Discontinued") %>' Enabled="false" /> </td> </tr> </table>




____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

basicdany Profilo | Expert

ciao, ti ringrazio, pero quello che mi serve e che 3 campi del db siano visualizzati alla destra della foto, uno sotto l'altro, come indico questa posizione dei 3 campi?

grazie

Gluck74 Profilo | Guru

la cosa più semplice è quella di farti una tabella dove posizioni i campi dove vuoi tu.
Io ho fatto come esempio una tabella che posizione 4 campi uno sotto l'altro a sinistra di una foto.

Tu imposta la griglia come meglio credi per le tue esigenze.



____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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