Domanda

Abbastanza nuovo a C# Ho bisogno di lanciare un valore per aggiungere minuti a una data ma può essere nullo.Ecco come faccio:

if(Eval("DUREE") != DBNull.Value)
{
    var duration = Convert.ToInt32(Eval("DUREE"));
    var date = Convert.ToDateTime(Eval("DATE"));
    var dateAsString = Convert.ToString(date.AddMinutes(duration));
    DataBinder.Eval(Container.DataItem, dateAsString, "{0:HH:mm}") 
}
else
{
    " - "
}
.

Qui l'errore che ottengo:

.

Databinting: 'System.Data.DatarowView' non Comporta proprietà chiamata: '17 / 04/2014 13:30:00 '.

Quindi, il controllo è falso?O l'errore è altrove?

È stato utile?

Soluzione

Prova a utilizzare il codice in ASPX in posizione in cui è necessaria la stringa con data o "-"

<%# Eval("DUREE") == DBNull.Value || Eval("DATE") == DBNull.Value
    ? " - "
    : Convert.ToString(Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToInt32(Eval("DUREE")))), "{0:HH:mm}") %>
.

Problema nel tuo codice in DataBinder.Eval Pass Secondo String Parameter con data ma non nome della proprietà.

Altri suggerimenti

Assumendo il metodo 'Eval' è restituito un valore di data in forma di una stringa, è questo ciò che stai cercando di fare?: Convert.ToDateTime(Eval("DATE")).AddMinutes(Convert.ToDateTime(Eval("DUREE")).Minute). Questa potrebbe essere la risposta al tuo problema per aggiungere minuti.

Tuttavia, l'errore che stai vendendo sembra indicare un problema diverso.Il codice che hai pubblicato sembra essere in codice dietro (?).Il metodo DataBinder.Eval verrà in genere utilizzato in ASPX per il controllo Web come il controllo del ripetitore.Nel qual caso dovrai superare il secondo parametro a DataBinder.Eval come nome di una proprietà pubblica.

Puoi verificarlo per chiarezza click qui

È possibile eseguire l'aggiunta di minuti durante il ritorno del valore della proprietà

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top