绑定List视图时,无法将类型'string'转换为'bool'

时间:2016-10-09 15:17:37

标签: c# asp.net entity-framework listview .net-4.5

我尝试在ListView侧绑定Checkbox Checked属性,如下所示:

<asp:CheckBox ID="chk_holi_sal" runat="server" Class="chk_holi_sal" Checked="<%#:Item.HasSal%>" />
public bool HasSal
{
    get { return SALARY_CALC == 1; }
}

但是我得到以下编译器错误:

  

编译器错误消息:CS0030:无法将类型'string'转换为'bool'

我检查<%#:Item.HasSal%>的值并发现它相等TrueFalse

为什么我一直都会收到此错误?

根据使用Eval而不是利用strongly type控件的ListView值的答案,我遇到了新的例外:

enter image description here

2 个答案:

答案 0 :(得分:2)

尝试使用此代码

<asp:CheckBox  ID="chk_holi_sal" runat="server" Checked="<%# Convert.ToBoolean(Eval("Item.HasSal")) %>"  />

或使用三元运算符

<asp:CheckBox  ID="chk_holi_sal" runat="server" Checked=
  <%# Convert.ToBoolean(Eval("Item.HasSal")) ? true : false %> /> 

答案 1 :(得分:1)

以下一行与我合作:

 <input id="chk_holi_sal" class="chk_holi_sal" type="checkbox" checked=' <%# Eval("HasSal") %>' disabled="disabled" runat="server" value="<%#:Item.HasSal%>" />

我尝试使用strongly-Typed功能,但失败了,我必须使用Eval