这里的语法有什么问题?它说服务器标签格式不正确

时间:2010-11-23 12:31:51

标签: c# asp.net

Visible='<%# ((Eval('<%# Eval("IsDefault")%>'))="True" ? Eval("False") : Eval("True") )%>'>>

3 个答案:

答案 0 :(得分:6)

你只想要一个bool,嵌套的引号是给你问题的,试试这个:

Visible='<%# Eval("IsDefault") == "True"  %>'

但是,根据您使用此处的位置,可能不允许任何一种方式。例如,在服务器标签中,您将获得“无法将"<%# Eval("IsDefault") == "True" %>"转换为布尔值”的内容。

答案 1 :(得分:3)

您的报价不均衡:'<%# ((Eval('

答案 2 :(得分:1)

编辑:鉴于IsDefault在数据库中为True,您可以通过在代码中定义辅助函数来实现此目的:

// in codebehind
public string GetIsVisible(bool isDefault)
{
    return (isDefault) ? "false" : "true";
}

// in web form...
Visible='<%# GetIsVisible(DataBinder.Eval("IsDefault")) %>'