试图评估bool时出错?

时间:2013-04-10 15:11:53

标签: c# asp.net

如果对象的CRMID是一个可以为null的字符串,我只想显示某个项目模板。

如果为null,我不想显示此项目模板:

      <asp:TemplateField HeaderText="">
                <ItemTemplate>
                <a href="#myModal" id='rm_btn' runat="server" role="button" class="close custom-close"  onclick="showModal('#myModal')" onserverclick="rmbtn"
                    visible='<%# (bool)(DataBinder.Eval(Container.DataItem, "CRMID") == null) ? "true" : "false" %>'>
                    ×</a>
                </ItemTemplate>
            </asp:TemplateField>

但是我收到以下错误:

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0030: Cannot convert type 'string' to 'bool'

Source Error:


Line 136:                <asp:TemplateField HeaderText="">
Line 137:                    <ItemTemplate>
Line 138:                    <a href="#myModal" id='rm_btn' runat="server" role="button" class="close custom-close"  onclick="showModal('#myModal')" onserverclick="rmbtn"
Line 139:                        visible='<%# (bool)(DataBinder.Eval(Container.DataItem, "CRMID") == null) ? "true" : "false" %>'>
Line 140:                        ×</a>

我不确定我做错了什么......

由于

2 个答案:

答案 0 :(得分:4)

您正试图直接转换"true""false"即。 string来增加价值。因此请尝试true/ false而不是像这样的字符串。

visible='<%# (bool)(DataBinder.Eval(Container.DataItem, "CRMID") == null) ? true : false %>'>

答案 1 :(得分:1)

我可以建议几次尝试:

删除引号

// BEFORE
(bool)(DataBinder.Eval(Container.DataItem, "CRMID") == null) ? "true" : "false"

// AFTER
(bool)(DataBinder.Eval(Container.DataItem, "CRMID") == null) ? true : false

bool.Parse

// BEFORE
(bool)(DataBinder.Eval(Container.DataItem, "CRMID") == null) ? "true" : "false"

// AFTER
bool.Parse((DataBinder.Eval(Container.DataItem, "CRMID") == null) ? "true" : "false")

或直接取消支票

// BEFORE
(bool)(DataBinder.Eval(Container.DataItem, "CRMID") == null) ? "true" : "false"

// AFTER
(DataBinder.Eval(Container.DataItem, "CRMID") == null) /* this is a bool already*/