Set CheckBox “Checked” propery in ASP repeater

前端 未结 4 1539
孤独总比滥情好
孤独总比滥情好 2021-01-14 08:16

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

相关标签:
4条回答
  • 2021-01-14 08:58

    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;
    }
    
    0 讨论(0)
  • 2021-01-14 09:01

    Old question, but I solved this in my application using something much simpler:

    <asp:CheckBox ID="chkIncludePdf" runat="server" Checked='<%# Eval("DefaultInclude").ToString() == "True" %>' />
    
    0 讨论(0)
  • 2021-01-14 09:02

    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("
    
    0 讨论(0)
  • 2021-01-14 09:02

    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")%>'
    
    0 讨论(0)
提交回复
热议问题