3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Ipotizziamo di avere una classe di questo tipo:
public class andrea
    {
        public andrea(System.Int32 id_value, Nullable<System.DateTime> test_value)
        {
            id = id_value;
            test = test_value;

        }
        System.Int32 _id;
        public System.Int32 id
        {
            get { return _id; }
            set { _id = value; }
        }
        Nullable<System.DateTime> _test;
        public Nullable<System.DateTime> test
        {
            get { return _test; }
            set { _test = value; }
        }
    }

Quindi da codice riempire una List<> per poi fare il binding dei dati ad un GridView:
        List<andrea> ccc = new List<andrea>();
        ccc.Add(andrea(1, DateTime.Now));
        ccc.Add(andrea(2, DateTime.Now.AddDays(34)));
        fufu.DataSource = ccc;
        fufu.DataBind();
...
<asp:GridView id="fufu" runat="server" />

Come mai in automatico viene visualizzata solo la colonne "id" mentre "test", che contiene un nullabletype, non viene visualizzata? Non riesco a capire se è un bug o altro... In sé non è un problema grave visto che è sufficiente inserire a mano, come dovrebbe sempre essere, le colonne... Qualcuno ha già riscontrato qusta cosa? C'è un trucchetto per risolvere?

Ciao
Il GridView utilizza TypeDescriptor.GetProperties per ottenere le proprietà della classe ma poi le filtra interrogando il metodo IsBindableType della GridView. Purtroppo questo metodo considera solo i tipi semplici e non hanno previsto i tipi semplici.
Il rimedio è quello di sovascrivere quel metodo:
    public class MyGridView : GridView
    {
        public override bool IsBindableType(Type type)
        {
            return !(!base.IsBindableType(type) && !type.IsGenericType);
        }
    }


Tanto il BoundField effettua un ToString e la struttura Nullable effettua un ToString o restituisce una stringa vuota nel caso di valore null.

Ciao

Il mio blog
Homepage
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Perfettissimo, grazie Cristian per le informazioni!!!

Ciao!
andrewz [MVP] [Staff] wrote:
Perfettissimo, grazie Cristian per le informazioni!!!

prego, 500 Euro!

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
prego, 500 Euro!

Miii!!! Preferivo rimanere nel dubbio!
Daniele Bochicchio ha scritto:
prego, 500 Euro!


Dan chiede e io mi prendo il 50%

Ciao

Il mio blog
Homepage
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Ricciolo ha scritto:
Dan chiede e io mi prendo il 50%
Posso cancellare questio mio thread?
andrewz [MVP] [Staff] wrote:
Posso cancellare questio mio thread?

certo, sono altri 500!

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

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.