内联Eval if语句返回常量

时间:2012-06-12 11:28:32

标签: c# asp.net if-statement eval

我的if语句目前(错误地)写为:

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

这一直有效,直到我想在最后的其他地方输出0。寻找类似的东西:

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

我可能会以错误的方式使用参数,但是在aspx页面中放入正确的语句是什么?

2 个答案:

答案 0 :(得分:4)

我建议采用另一种方法,如果你不喜欢它,可以随意忽略它。为什么不在这样的数据源中创建一个新属性

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

然后你可以在你的页面中有一个简单的Eval语句

<%# Eval("HolidaysText") %>

答案 1 :(得分:2)

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