anothershrubery
anothershrubery

Reputation: 21003

Inline Eval if statement returning constant

I have an if statement currently written (wrongly) as:

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

This works until I want to output the 0 in the final else. Looking for something like:

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

I might have the arguments the wrong way around, but what would be the correct statement to put in the aspx page?

Upvotes: 1

Views: 2253

Answers (2)

anouar.bagari
anouar.bagari

Reputation: 2104

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

Upvotes: 2

graham mendick
graham mendick

Reputation: 1839

I'm suggesting an alternative approach, feel free to ignore it if you don't like it. Why not create a new property in your data source like this

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

Then you can have a simple Eval statement in your page

<%# Eval("HolidaysText") %>

Upvotes: 4

Related Questions