【问题标题】:using if else with eval in aspx page在 aspx 页面中使用 if else 和 eval
【发布时间】:2013-06-08 16:00:25
【问题描述】:

有没有办法在 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 中这样做。

【问题讨论】:

  • 为什么不能为此使用代码隐藏类?
  • 我正在使用 div 在 jquery 工具提示中显示。我想在 aspx 页面上做。如果可能的话。
  • 你可以使用三元运算符

标签: c# asp.net visual-studio-2010


【解决方案1】:

你可以试试 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>

【讨论】:

  • +1 谢谢!这也是一个可行的解决方案。但我正在寻找在 aspx 页面本身上做的事情。
【解决方案2】:

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

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

假设字段Percentage 包含整数。

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

<%# If(Eval("Status") < 50, "0 %", Eval("Percentage")) %>

【讨论】:

  • 用户要求使用 C#,但我从搜索引擎来到这里寻找 VB.NET 版本,所以我想这可以在未来帮助“另一个我”: 享受它
【解决方案3】:

如果您尝试绑定的是一个模型类,您可以向它添加一个新的只读属性,例如:

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

否则,您可以使用 Andrei's 或 kostas ch。如果你不能修改类本身的建议

【讨论】:

  • 谢谢!这很有帮助。但我没有使用百分比作为属性。但这将是将来有用的东西。
【解决方案4】:
 <%if (System.Configuration.ConfigurationManager.AppSettings["OperationalMode"] != "live") {%>
                        &nbsp;[<%=System.Environment.MachineName%>]
                        <%}%>

【讨论】:

    【解决方案5】:
    <%# (string)Eval("gender") =="M" ? "Male" :"Female"%>
    

    【讨论】:

    • 通常避免只使用代码的答案。考虑添加description 或至少显示更多有助于解释代码的上下文。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    相关资源
    最近更新 更多