I was wondering if it\'s possible to set the checked propery of a checkbox, using a bool variable form the repeater\'s datasource?
I\'ve tried several ways but witho
Another solution is handling ItemDataBound event:
<asp:Repeater ID="rpt" runat="server" OnItemDataBound="rpt_ItemDataBound">
<itemTemplate>
<asp:CheckBox runat="server" CssClass="checkbox" ID="isDefaultCheckBox"/>
</itemTemplate>
</asp:Repeater>
...
protected void rpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
RepeaterItem ri = e.Item;
var dataItem = ri.DataItem as YourClassOrInterface;
var isDefaultCheckBox = ri.FindControl("isDefaultCheckBox") as CheckBox;
isDefaultCheckBox.Checked = dataItem.IsDefault;
}
Old question, but I solved this in my application using something much simpler:
<asp:CheckBox ID="chkIncludePdf" runat="server" Checked='<%# Eval("DefaultInclude").ToString() == "True" %>' />
I'm fairly sure that it should work this way:
Checked='<%# Bind("IsDefault") %>'
By the way, there's a missing <
in your first approach:
Checked="%#Eval...
Edit: (since you've also edited your question and corrected it)
Now there's something else wrong, you've two consecutive quotes here:
Checked="<%#Eval("
The problem with the code is actually the fact that you are nesting double quotes
Checked="<%# DataBinder.Eval(Container.DataItem, "IsDefault")%>"
should be
Checked='<%# DataBinder.Eval(Container.DataItem, "IsDefault")%>'