Se dataitem è Null
voglio mostrare 0
Utilizzo '<% # Eval ("item")%>'; Manipolazione Null Valore e mostrando 0 contro
<asp:Label ID="Label18" Text='<%# Eval("item") %>' runat="server"></asp:Label>
Come posso fare questo?
Se dataitem è Null
voglio mostrare 0
Utilizzo '<% # Eval ("item")%>'; Manipolazione Null Valore e mostrando 0 contro
<asp:Label ID="Label18" Text='<%# Eval("item") %>' runat="server"></asp:Label>
Come posso fare questo?
È anche possibile creare un metodo pubblico sulla pagina, quindi richiamarlo dal codice in primo piano.
ad es. se si utilizza C#:
public string ProcessMyDataItem(object myValue)
{
if (myValue == null)
{
return "0 value";
}
return myValue.ToString();
}
Poi l'etichetta nella parte anteriore del codice-in-sarà qualcosa di simile:
<asp:Label ID="Label18" Text='<%# ProcessMyDataItem(Eval("item")) %>' runat="server"></asp:Label>
Siamo spiacenti, non hanno testato questo codice in modo non può garantire ho ricevuto la sintassi di "<%# ProcessMyDataItem(Eval("item")) %>
" completamente corretto.
Provare a sostituire <%# Eval("item") %>
con <%# If(Eval("item"), "0 value") %>
(o <%# Eval("item") ?? "0 value" %>
, quando si utilizza C#).
non ho testato il tuo codice, ma "<% # If (Eval (" item ")," 0 value ")%>" sembra un po 'strano. Non sei sicuro di poter effettivamente usare un'istruzione If con Eval in questo modo, e il risultato non sarebbe il solo True/False restituito? –
No, questo è l'operatore binario 'If' di VB.NET:' If (value, valueIfNull) ': http://msdn.microsoft.com/en-us/library/bb513985.aspx – Heinzi
Non conosco molto bene ASP.NET, ma è possibile utilizzare l'operatore ternario?
http://en.wikipedia.org/wiki/Ternary_operation
Qualcosa di simile: (x = Eval ("voce")) == null? 0: x
Inoltre, è possibile utilizzare (x = Eval ("elemento") ?? 0) in questo caso.
Usa IIF.
<asp:Label ID="Label18" Text='<%# IIF(Eval("item") Is DBNull.Value,"0", Eval("item") %>'
runat="server"></asp:Label>
sto usando questo per valori di stringa:
<%#(String.IsNullOrEmpty(Eval("Data").ToString()) ? "0" : Eval("Data"))%>
È inoltre possibile utilizzare seguente per i valori Null:
<%#(Eval("Data") == null ? "0" : Eval("Data"))%>
anche se si sta utilizzando .NET 4.5 e superiori Suggerisco di utilizzare strongly typed data binding:
<asp:Repeater runat="server" DataSourceID="odsUsers" ItemType="Entity.User">
<ItemTemplate>
<%# Item.Title %>
</ItemTemplate>
</asp:Repeater>
Non genererà un'eccezione se Eval ("Dati") è nullo? – KannedFarU
Se il valore è DBNull.Value, allora non lo sarà. Esempio: oggetto a = DBNull.Value; Response.Write (a.ToString()); –
Bene, DBNull.Value non è reale null ... – KannedFarU
Dovrebbe funzionare così
Eval("item") == null?"0": Eval("item");
provare questo codice potrebbe essere utile -
<%# ((DataBinder.Eval(Container.DataItem,"ImageFilename").ToString()=="") ? "" :"<a
href="+DataBinder.Eval(Container.DataItem, "link")+"><img
src='/Images/Products/"+DataBinder.Eval(Container.DataItem,
"ImageFilename")+"' border='0' /></a>")%>
Io uso il seguente per VB.Netto:
<%# If(Eval("item").ToString() Is DBNull.Value, "0 value", Eval("item")) %>
Dove dovrei aggiungere questo al mio codice qui: http://stackoverflow.com/questions/27237555/why-empty-cell-throws-an-error-during- sql-stored-procedure-esecuzione – SearchForKnowledge
ho provato questo codice e funziona bene per entrambe le situazioni nulli e vuoti:
'<%# (Eval("item")=="" || Eval("item")==null) ? "0" : Eval("item")%>'
usato una versione modificata della risposta di Jason:
public string ProcessMyDataItem(object myValue)
{
if (myValue.ToString().Length < 1)
{
return "0 value";
}
return myValue.ToString();
}
Ho effettuato il check in <%# %> i tag e == null non identificano i ritorni nulli; Ho dovuto usare == DBNull.Value. – user467384
Dove dovrei aggiungere questo al mio codice qui: http://stackoverflow.com/questions/27237555/why-empty-cell-throws-an-error-during-sql-stored-procedure-execution – SearchForKnowledge
Vale un controllo aggiuntivo a vedere se myValue.ToString() è vuoto. Ad esempio, Eval ("MyDate", "{0: d}") fornisce una stringa vuota se MyDate è un oggetto DateTime nullable. –