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

Cannot convert type 'string' to 'bool' while binding List view

我尝试像这样在 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; }
}

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

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

我检查了 <%#:Item.HasSal%> 的值,发现它等于 TrueFalse

为什么我总是收到这个错误?


根据使用 Eval 而不是利用 ListView 控件的 strongly type 值的答案,我面临新的异常:

尝试使用此代码

<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 %> /> 

以下行对我有用:

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

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