I nullable type non vengono "bindati" in automatico?
andrewz non è online. Ultima attività: 03/12/2008 17.19.38andrewz
Inserito il: 28 gennaio 2006 15.45
contributi / Top Poster / Community manager / ciclismo.sitiasp.it / Blog / 2924 messaggi dal 29 ott 2001 Istalla Microsoft Silverlight!
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

Andrea Zani
Anche un orologio rotto segna per ben due volte al giorno l'ora esatta.
Microsoft Most Valuable Professional
Re: I nullable type non vengono "bindati" in automatico?
Ricciolo non è online. Ultima attività: 03/12/2008 11.45.25Ricciolo
Inserito il: 30 gennaio 2006 16.31
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4646 messaggi dal 26 feb 2001 Istalla Microsoft Silverlight!
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
Re: I nullable type non vengono "bindati" in automatico?
andrewz non è online. Ultima attività: 03/12/2008 17.19.38andrewz
Inserito il: 30 gennaio 2006 17.19
contributi / Top Poster / Community manager / ciclismo.sitiasp.it / Blog / 2924 messaggi dal 29 ott 2001 Istalla Microsoft Silverlight!
Perfettissimo, grazie Cristian per le informazioni!!!

Ciao!

Andrea Zani
Anche un orologio rotto segna per ben due volte al giorno l'ora esatta.
Microsoft Most Valuable Professional
Re: I nullable type non vengono "bindati" in automatico?
Daniele Bochicchio non è online. Ultima attività: 03/12/2008 19.41.20Daniele Bochicchio
Inserito il: 30 gennaio 2006 18.57
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 10044 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
andrewz [MVP] [Staff] wrote:
Perfettissimo, grazie Cristian per le informazioni!!!

prego, 500 Euro!

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight
Re: I nullable type non vengono "bindati" in automatico?
andrewz non è online. Ultima attività: 03/12/2008 17.19.38andrewz
Inserito il: 30 gennaio 2006 19.19
contributi / Top Poster / Community manager / ciclismo.sitiasp.it / Blog / 2924 messaggi dal 29 ott 2001 Istalla Microsoft Silverlight!
prego, 500 Euro!

Miii!!! Preferivo rimanere nel dubbio!

Andrea Zani
Anche un orologio rotto segna per ben due volte al giorno l'ora esatta.
Microsoft Most Valuable Professional
Re: I nullable type non vengono "bindati" in automatico?
Ricciolo non è online. Ultima attività: 03/12/2008 11.45.25Ricciolo
Inserito il: 30 gennaio 2006 21.46
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4646 messaggi dal 26 feb 2001 Istalla Microsoft Silverlight!
Daniele Bochicchio ha scritto:
prego, 500 Euro!


Dan chiede e io mi prendo il 50%

Ciao

Il mio blog
Homepage
Re: I nullable type non vengono "bindati" in automatico?
andrewz non è online. Ultima attività: 03/12/2008 17.19.38andrewz
Inserito il: 30 gennaio 2006 22.09
contributi / Top Poster / Community manager / ciclismo.sitiasp.it / Blog / 2924 messaggi dal 29 ott 2001 Istalla Microsoft Silverlight!
Ricciolo ha scritto:
Dan chiede e io mi prendo il 50%
Posso cancellare questio mio thread?

Andrea Zani
Anche un orologio rotto segna per ben due volte al giorno l'ora esatta.
Microsoft Most Valuable Professional
Re: [OT] I nullable type non vengono "bindati" in automatico?
Daniele Bochicchio non è online. Ultima attività: 03/12/2008 19.41.20Daniele Bochicchio
Inserito il: 31 gennaio 2006 09.40
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 10044 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
andrewz [MVP] [Staff] wrote:
Posso cancellare questio mio thread?

certo, sono altri 500!

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight

2 pagine: [1] 2 Avanti >>

Vai a:
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.


PeppeDotNet - 1000 pt
gghi - 170 pt
fabrica - 50 pt

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008, SQL Prompt e 1 ebook!


COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums