关于C#:在ASPX页中使用if else和eval

using if else with eval in aspx page

在下面的ASPX页上的eval中是否有使用else if的方法?

目前我的分类如下:

1
                Value = <%# Eval("Percentage") +"%" %>

我想在我的DIV上使用以下逻辑:

1
2
3
4
If(Percentage < 50)
   display"0 %"
   else
   display"percentage"

我试过这样的方法,但不管用:

1
2
3
4
5
6
7
8
if (<%# Eval("Percentage") %> < 50)
{
    Eval("0");
}
else
{
   <%# Eval("PassPercentage") +"%" %>
 }

我想知道在ASPX页面上是否可以执行这样的操作。我不能在aspx.cs中完成。


如果您绝对不想使用代码隐藏,可以尝试使用条件运算符:

1
<%# ((int)Eval("Percentage") < 50) ?"0 %" : Eval("Percentage") %>

这是假设字段Percentage包含整数。


你可以试试C.*

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public string ProcessMyDataItem(object myValue)
 {
  if (myValue == null)
   {
   return"0 %"";
  }
   else
  {
     if(Convert.ToInt32(myValue) < 50)
       return"
0";
     else
      return myValue.ToString() +"
%";
  }

 }

ASP

1
   Value =<%# ProcessMyDataItem(Eval("Percentage")) %>


如果尝试绑定的是模型类,则可以向其添加新的只读属性,如下所示:

1
2
3
4
5
6
7
8
9
10
public string FormattedPercentage
{
    get
    {
        If(this.Percentage < 50)
            return"0 %";
        else
            return string.Format("{0} %", this.Percentage)        
     }
}

否则,如果无法修改类本身,则可以使用Andrei或Kostas ch.建议。


1
<%# (string)Eval("gender") =="M" ?"Male" :"Female"%>


1
2
3
 <%if (System.Configuration.ConfigurationManager.AppSettings["OperationalMode"] !="live") {%>
                        &nbsp;[<%=System.Environment.MachineName%>]
                        <%}%>