检查Eval()是否为零并显示锚标记的条件

时间:2014-06-24 10:01:04

标签: c# asp.net

我有一个中继器。并填充锚标记中的某些数值。但如果值为零,我只想显示一个范围,并丢弃锚。

这是我的代码。

HTML中的

    <td>
        <%if (ProcessMyDataItem(Eval("7DAYS").ToString()))
         {%>
<a class='aDetails' href="DashCheckInCheckOutDetails.aspx?building=<%=hiddenBuildingDetailsId.Value.ToString() %>&action=<%#Eval("ID") %>&day=7&name=<%#Eval("DESC") %>"><%#Eval("7DAYS") %> </a>
     <% }
      else
      {
          Response.Write("<span>0</span>");
      }
      %>
     </td>

在代码隐藏中我有

public bool ProcessMyDataItem(string myValue)
        {
            if (myValue == "0")
            {
                return false;
            }

            return true;
        }

但是当我运行它时,显示错误

  

数据绑定方法,如Eval(),XPath()和Bind()只能是   在数据绑定控件的上下文中使用。

有没有办法检查eval值为零,如果为零,则显示span,否则显示anchor tag。

3 个答案:

答案 0 :(得分:3)

尝试使用:

 <%#Eval("7DAYS").ToString() != "0" ?"<a class='aDetails' href='DashCheckInCheckOutDetails.aspx?...'>3 </a>":" <span>0</span>"%>

这样可行!我已经测试了!

注意:请根据需要为链接添加url

更新答案:

  <%#Eval("7DAYS").ToString() != "0" ? "<a class='aDetails' href=DashCheckInCheckOutDetails.aspx?building="+hiddenBuildingDetailsId.Value+"&action="+Eval("ID") +"&day=7&name="+Eval("DESC") +">"+Eval("7DAYS")+" </a>" : " <span>0</span>" %>

这样可行。

答案 1 :(得分:1)

这就是我的想法

<%# Eval("7DAYS") == 0 ? "empty" : "notempty" %>

此外,如果字段值类型应该是字符串,那么您可以按照..

的方式执行某些操作
<%# (Eval("7DAYS") as string) ?? "empty" %>

答案 2 :(得分:0)

您必须像这样更改'标签',

<a class="aDetails" href="DashCheckInCheckOutDetails.aspx?building="+<%hiddenBuildingDetailsId.Value.ToString() %>&action=<%Eval("ID") %>&day=7&name=<%Eval("DESC") %>'><% Eval("7DAYS") %> </a>

让我知道结果。