For the life of me I cannot bind the Checked property of a CheckBox control within a TemplateField (declaritively).
I have tried:
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="deactivated" runat="server" checked="<%#Eval("Deactivated")%>"></asp:CheckBox>
</ItemTemplate>
<asp:TemplateField>
and
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="deactivated" runat="server" checked="<%#Eval(Container.DataItem, "Deactivated")%>"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
</asp:TemplateField>
I keep seeing a warning stating:
Cannot create an object of type 'System.Boolean' from it's string representation' 'for the 'Checked' property
What am I doing wrong?
It may be because of the double quotes you've used. Try:
checked= '<%# Eval("Deactivated") %>'
Use single quotes around the property value:
<asp:CheckBox ID="deactivated" runat="server" checked='<%#Eval("Deactivated")%>'></asp:CheckBox>
It's best to handle this via code-behind in the control's rowdatabound event (assuming it's a gridview).
if (e.Row.RowType == RowType.DataRow)
{
CheckBox chk = (CheckBox) GridView1.FindControl("deactivated");
chk.Checked = true;
}
Note: The abv code may contain errors ...
OR,
Retrieve the data in such a manner that that particular field the checkbox is trying to bind to should be a field of type bit (i.e. it can either have 1 or 0).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With