如果对象的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>
我不确定我做错了什么......
由于
答案 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*/