Inline Eval si la declaración devuelve constante

Tengo una declaración if actualmente escrita (incorrectamente) como:

<%# Eval("AccumHolidays").ToString() != "" ? Eval("AccumHolidays").ToString() : Eval("Holidays").ToString() != "" ? Eval("Holidays").ToString() : %> 0 <% %>

Esto funciona hasta que quiero generar el 0 en el else final. Buscando algo como:

if(Eval("AccumHolidays").ToString() != "")
    Eval("AccumHolidays").ToString();
else
    if(Eval("Holidays").ToString() != "")
        Eval("Holidays").ToString();
    else
        Response.Write("0");

Podría tener los argumentos al revés, pero ¿cuál sería la declaración correcta para poner en la página aspx?

preguntado el 12 de junio de 12 a las 12:06

Tal vez solo necesitas : "0" al final -

No puedo creer que fuera tan simple, ¡pensé que había probado todas las combinaciones posibles! -

2 Respuestas

Estoy sugiriendo un enfoque alternativo, siéntete libre de ignorarlo si no te gusta. ¿Por qué no crear una nueva propiedad en su fuente de datos como esta?

public string HolidaysText
{
    get
    {
        if (AccumHolidays.ToString() != "")
            return AccumHolidays.ToString();
        if (Holidays.ToString() != "")
            return Holidays.ToString();
        return "0";
    }
}

Entonces puede tener una declaración Eval simple en su página

<%# Eval("HolidaysText") %>

Respondido el 12 de junio de 12 a las 12:06

Esta es una buena solución, pero elegí la otra solo porque era la más simple. - otro Shrubery

<%# Eval("AccumHolidays").ToString() != "" ? 
Eval("AccumHolidays").ToString() : Eval("Holidays").ToString() != "" ? 
Eval("Holidays").ToString() : "0"%>   

Respondido el 12 de junio de 12 a las 12:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.