Si dataitem es Null
Quiero mostrar 0
Usando '<% # Eval ("elemento")%>'; Manipulación del valor nulo y mostrando 0 contra
<asp:Label ID="Label18" Text='<%# Eval("item") %>' runat="server"></asp:Label>
¿Cómo puedo lograr esto?
Si dataitem es Null
Quiero mostrar 0
Usando '<% # Eval ("elemento")%>'; Manipulación del valor nulo y mostrando 0 contra
<asp:Label ID="Label18" Text='<%# Eval("item") %>' runat="server"></asp:Label>
¿Cómo puedo lograr esto?
También puede crear un método público en la página y luego llamarlo desde el código en primer plano.
p. Ej. si se utiliza C#:
public string ProcessMyDataItem(object myValue)
{
if (myValue == null)
{
return "0 value";
}
return myValue.ToString();
}
A continuación, la etiqueta en la parte delantera de código-in-será algo como:
<asp:Label ID="Label18" Text='<%# ProcessMyDataItem(Eval("item")) %>' runat="server"></asp:Label>
Lo sentimos, no han probado este código para garantizar que no se me dio la sintaxis de "<%# ProcessMyDataItem(Eval("item")) %>
" completamente correcto.
Intente reemplazar <%# Eval("item") %>
con <%# If(Eval("item"), "0 value") %>
(o <%# Eval("item") ?? "0 value" %>
, cuando use C#).
yo no tengo probado su código, pero "<% # If (Eval (" item ")," 0 value ")%>" parece un poco extraño. No estoy seguro de que realmente pueda usar una declaración If con Eval como esa, y ¿no sería el resultado simplemente un verdadero/falso? –
No, ese es el operador 'If' binario de VB.NET:' If (value, valueIfNull) ': http://msdn.microsoft.com/en-us/library/bb513985.aspx – Heinzi
No sé muy bien ASP.NET, pero ¿puedes usar el operador ternario?
http://en.wikipedia.org/wiki/Ternary_operation
Algo así como: (x = Eval ("elemento")) == null? 0: x
Además, puede usar (x = Eval ("item") ?? 0) en este caso.
Uso IIF.
<asp:Label ID="Label18" Text='<%# IIF(Eval("item") Is DBNull.Value,"0", Eval("item") %>'
runat="server"></asp:Label>
estoy usando esto para valores de cadena:
<%#(String.IsNullOrEmpty(Eval("Data").ToString()) ? "0" : Eval("Data"))%>
También puede utilizar después para valores anulables:
<%#(Eval("Data") == null ? "0" : Eval("Data"))%>
Además, si usted está utilizando .NET 4.5 y superiores Sugiero que use strongly typed data binding:
<asp:Repeater runat="server" DataSourceID="odsUsers" ItemType="Entity.User">
<ItemTemplate>
<%# Item.Title %>
</ItemTemplate>
</asp:Repeater>
¿No arrojará esto una excepción si Eval ("Datos") es nulo? – KannedFarU
Si el valor es DBNull.Value, no lo hará. Ejemplo: object a = DBNull.Value; Response.Write (a.ToString()); –
Bien DBNull.Value correcto no es nulo real ... – KannedFarU
Se debe trabajar, así
Eval("item") == null?"0": Eval("item");
probar este código podría ser útil -
<%# ((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>")%>
utilizo el siguiente para VB.Neto:
<%# If(Eval("item").ToString() Is DBNull.Value, "0 value", Eval("item")) %>
¿Dónde podría agregar eso a mi código aquí: http://stackoverflow.com/questions/27237555/why-empty-cell-throws-an-error-during- sql-stored-procedure-execution – SearchForKnowledge
he tratado este código y funciona bien para ambas situaciones nulos y vacíos:
'<%# (Eval("item")=="" || Eval("item")==null) ? "0" : Eval("item")%>'
utilizó una versión modificada de la respuesta de Jason:
public string ProcessMyDataItem(object myValue)
{
if (myValue.ToString().Length < 1)
{
return "0 value";
}
return myValue.ToString();
}
Hice el cheque en el <%# %> tags y == null no identificaron los retornos nulos; Tuve que usar == DBNull.Value. – user467384
¿Dónde podría agregar eso a mi código aquí: http://stackoverflow.com/questions/27237555/why-empty-cell-throws-an-error-during-sql-stored-procedure-execution – SearchForKnowledge
Merece la pena realizar un control adicional a mira si myValue.ToString() también está vacío. Por ejemplo, Eval ("MyDate", "{0: d}") da una cadena vacía si MyDate es un objeto de fecha y hora que admite valores NULL. –