138 messaggi dal 05 maggio 2005
Ciao a tutti!
Seguendo l'esempio http://www.aspitalia.com/script/710/Aggiungere-Colonne-DataGrid-Runtime.aspx ho creato a runtime le colonne di una datagrid. La Datagrid mi rappresenta una tabella pivot dinamica, quindi non so a priori il numero di queste colonne. Funziona tutto bene, se non fosse che non riesco a impostare la larghezza delle colonne.
nella pagina aspx le datagrid è dichiarata così:

<asp:DataGrid ID="DG" runat="server" AutoGenerateColumns="false" SowHeader="true" HorizontalAlign="left">
</asp:DataGrid>

Ho provato ad impostare una classe del foglio di stile:
.BBound
{
background-color:#c7c7c7;
color:red;
width:200px;
}

impostata nell' ItemDataBound con:

For i As Int32 = 0 To e.Item.Cells.Count - 1
e.Item.Cells(i).CssClass = "BBound"
Next

Lo stile viene accettato perchè mi ritrovo le varie celle con lo sfondo e con il colore del testo impostato... ma viene ignorata la dimensione.

Come posso fare per inmpostare la dimensione di ogni colonna?

Grazie,
Atropo
Atropo wrote:
Seguendo l'esempio

http://www.aspitalia.com/script/710/Aggiungere-Colonne-DataGrid-Runtime.aspx
premessa: DataGrid non è il massimo. se puoi e fai in tempo, "passa" a GridView.

Come posso fare per inmpostare la dimensione di ogni colonna?

l'intellisense è tuo amico: usando le proprietà di stile?
....Cells(i).Style.Width?

Grazie,

prego.
.

Daniele Bochicchio (ASPItalia.com)
I libri su HTML5, WP7, ASP.NET 4.0, VB 2010, C# 4, Entity Framework
Senior Software Architect @ 5DLabs.it
138 messaggi dal 05 maggio 2005
Non trovo la proprietà width sotto style, però ho provato così:
e.Item.Cells(i).Width = Unit.Pixel(200)

ma non cambia nulla, le colonne rimangono della dimensione del valore più grande contenuto nella colonna stessa... Non riesco a renderele tutte uguali...
Atropo wrote:
ma non cambia nulla, le colonne rimangono della dimensione del valore più grande contenuto nella colonna stessa... Non riesco a renderele tutte uguali...

ovvio che sarà così. se una info non può essere rappresentata, per default la colonna si allarga. se a te non va, devi usare uno stile CSS che dica che l'overflow deve essere gestito in maniera specifica.
tipo:
..myTD{
width:200px!important;
overflow:auto;
}

questo fa sì che se il testo non entra in 200 px, in automatico vedrai le scrollbar in linea. in altro modo non si può fare.
.

Daniele Bochicchio (ASPItalia.com)
I libri su HTML5, WP7, ASP.NET 4.0, VB 2010, C# 4, Entity Framework
Senior Software Architect @ 5DLabs.it
138 messaggi dal 05 maggio 2005
Daniele Bochicchio ha scritto:
Atropo wrote:
ma non cambia nulla, le colonne rimangono della dimensione del valore più grande contenuto nella colonna stessa... Non riesco a renderele tutte uguali...

ovvio che sarà così. se una info non può essere rappresentata, per default la colonna si allarga. se a te non va, devi usare uno stile CSS che dica che l'overflow deve essere gestito in maniera specifica.
tipo:
..myTD{
width:200px!important;
overflow:auto;
}

questo fa sì che se il testo non entra in 200 px, in automatico vedrai le scrollbar in linea. in altro modo non si può fare.
.


Ok, perfetto!

Grazie

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.
In primo piano

I più letti di oggi

Media
In evidenza
MISC