如何在EVAL Listview上使用IF语句

时间:2019-03-25 22:59:58

标签: c# html asp.net

我正在使用一个列表视图,它使用Mysql作为数据源。在Mysql上,我有一个名为“ Master”的字段,其中只有“ 1”或“ 0”。我希望绑定发生时,如果该字段包含1,则将其替换为刻度,如果其为0,则将其替换为x。这些标签也是hrefs,因此我可以单击它们并更改为其相反的值(至少这是我想要在此处完成的功能)

我正在使用以下代码来测试IF语句:

                <td> 
                    <asp:Label  
                        runat="server" 
                        Text='<%# Eval("Master").ToString() == "1" ? "a" : "b"
                                %>'> 
                    </asp:Label> 
                </td>

到目前为止,它已经完成了工作。但是,当我用html代码代替“ a”或“ b”时,出现错误:

  

解析器错误说明:解析服务该请求所需的资源期间发生错误。请查看以下内容   具体的解析错误详细信息并修改您的源文件   适当地。
  解析器错误消息:服务器标记不正确   形成。

这是我要使用的代码:

               <td> 
                    <asp:Label  
                        runat="server" 
                        Text='<%# Eval("Master").ToString() == "1" ? 
"<a href='#' style='color:#269302; font-size:25px;'><i class='fas fa-check'></i></a>" : 
"<a href='#' style='color:#bf2727; font-size:25px;'><i class='fas fa-times'></i></a>"
                                    %>'> 
                        </asp:Label> 
                    </td>

有人可以解释为什么在此代码中使用html标签会向我显示错误吗?

1 个答案:

答案 0 :(得分:0)

如果有人和我有同样的问题,我找到了解决方法!

我不是在内部代码中使用If语句,而是在后面的代码中使用了一个函数。

这是我的.aspx页面上的样子:

          <asp:Label  
              runat="server" 
              Text='<%# ConvertIcon(Convert.ToInt32(Eval("Master")))%>'>
          </asp:Label> 

ConvertIcon是我的函数的名称。这就是我的.aspx.cs页面上的样子:

    protected string ConvertIcon(Nullable<int> binarydata)
{
    string labelText = string.Empty;
    if (binarydata == 1)
        labelText = "<a href='#' style='color:#269302; font-size:25px;'><i class='fas fa-check'></i></a>";
        else
        labelText = "<a href='#' style='color:#bf2727; font-size:25px;'><i class='fas fa-times'></i></a>";
    return labelText;
}