30

有没有办法在 aspx 页面上的以下 eval 中使用 else if 。

目前我的 div 如下:

  <div class="tooltip" style="display: none">                                                                  
        <div style="text-align: center; font-weight: normal">
                Value = <%# Eval("Percentage") + "%" %>     
        </div>
  </div>

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

If(Percentage < 50)
   display "0 %"
   else 
   display "percentage"

我尝试了这样的事情,但它不起作用:

if (<%# Eval("Percentage") %> < 50)
{
    Eval("0");
}
else
{
   <%# Eval("PassPercentage") + "%" %> 
 }

我想知道是否可以在 aspx 页面上进行这样的操作。我不能在 aspx.cs 中做到这一点。

4

5 回答 5

61

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

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

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

更新: VB.NET 版本,以防万一,由tomasofen提供:

<%# If(Eval("Status") < 50, "0 %", Eval("Percentage")) %>
于 2013-06-12T13:53:45.590 回答
19

你可以试试c#

public string ProcessMyDataItem(object myValue)
 {
  if (myValue == null)
   {
   return "0 %"";
  }
   else
  {
     if(Convert.ToInt32(myValue) < 50)
       return "0";
     else
      return myValue.ToString() + "%";
  }

 }

ASP

 <div class="tooltip" style="display: none">                                                                  
      <div style="text-align: center; font-weight: normal">
   Value =<%# ProcessMyDataItem(Eval("Percentage")) %> </div>
 </div>
于 2013-06-12T13:51:59.033 回答
2

如果您尝试绑定的是 Model 类,则可以向其添加新的只读属性,例如:

public string FormattedPercentage
{
    get
    {
        If(this.Percentage < 50)
            return "0 %";
        else 
            return string.Format("{0} %", this.Percentage)        
     }
}

否则,您可以使用 Andrei 或 kostas ch。如果您无法修改课程本身的建议

于 2013-06-12T15:06:46.973 回答
1
<%# (string)Eval("gender") =="M" ? "Male" :"Female"%>
于 2015-02-20T10:56:48.347 回答
0
 <%if (System.Configuration.ConfigurationManager.AppSettings["OperationalMode"] != "live") {%>
                        &nbsp;[<%=System.Environment.MachineName%>]
                        <%}%>
于 2014-05-29T13:36:55.257 回答