根据数据列表中的列结果设置要选中/取消选中的复选框

本文关键字:复选框 取消 设置 数据 列表 结果 | 更新日期: 2023-09-27 17:57:29

我在数据列表中有两个复选框[isSold(bit),Offline(bit)],我想根据该行的数据库结果将该复选框设置为选中或取消选中。例如,如果产品已售出,则已售出列将为true,因此应选中复选框。我试图通过使用以下代码来获得所需的结果,但没有成功:

    <asp:DataList ID="dlEditCaravans" runat="server" 
            RepeatDirection="Vertical" DataKeyField="makeID" OnEditCommand="edit" 
            OnDeleteCommand="delete" ItemStyle-CssClass="dleditCaravans" 
            onitemcommand="dlEditCaravans_ItemCommand" 
            onitemdatabound="dlEditCaravans_ItemDataBound">
                            <ItemTemplate>
                            <div class="imgeditCaravan">
                            <asp:Image runat="server" ID="caravanImage" ImageUrl='<%#String.Format("/images/caravans/{0}", Eval("image")) %>' Height="80" Width="80" />
                            </div>
                            <div class="lblmakeCaravan">
                            <asp:Label ID="lblMake" runat="server" Text='<%#Eval("make") %>' CssClass="lblheader"></asp:Label>
                            <br />
                            <asp:Label ID="imgDesc" runat="server" CssClass="lblDescription" Text='<%#(Eval("description").ToString().Length>350)?Eval("description").ToString().Substring(0,50)+ "....":Eval("description").ToString() + "...." %>'></asp:Label>
                            <br />
                            <asp:Label ID="lblPrice" runat="server" Text='<%#"£&nbsp;"+Eval("Price")%>'></asp:Label>
                            <br />
                            </div>
                            <div class="editImage">
                           <asp:ImageButton ID="edit" runat="server" CommandName="edit" ImageUrl="~/images/newsControls/edit.gif" ToolTip="Edit Caravan"/>
                           <asp:ImageButton ID="delete" runat="server" CommandName="delete" ImageUrl="~/images/newsControls/delete.gif" ToolTip="Delete Caravan"/>
                           <br /> <br />
                                <asp:Button ID="btnAddToFeature" runat="server" Text="Add To Feautured Caravans" CommandName="AddToCaravans" Enabled="false" Width="210" Height="30" ForeColor="#1D91BD" ToolTip="Add Caravan To Feautured Caravans"/><br /><br />
                                <asp:Button ID="btnRemoveFeature" runat="server" Text="Remove From Feautured Caravans" CommandName="RemoveToCaravans" Enabled="false" ToolTip="Remove from Featured Caravans" Width="210" Height="30" ForeColor="#1D91BD" />
                            <br /> <br />
                            <asp:CheckBox runat="server" ID="chkOffline" Checked='<%#Eval("offline") %>'  /> &nbsp; <label>Set This Caravan in Offline mode</label>
                            </div>
                            </ItemTemplate>
                            <SeparatorTemplate>
                            <div class="descSeparator"></div>
                            </SeparatorTemplate>
                 </asp:DataList>

根据数据列表中的列结果设置要选中/取消选中的复选框

首先,这应该有效:Checked='<%#Eval("offline") %>',如果它不起作用,那肯定是另一个问题。

或者,您也可以在ItemDataBound事件中执行同样的操作。喜欢

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
 if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
    {
       DataRow dr = ((DataRowView)e.Item.DataItem).Row;
       ((CheckBox)e.Item.FindControl("chkOffline")).Checked = Convert.ToBoolean(dr["chkOffline"]);
     }
    }
}

您可以做的是,将值存储在而不是复选框中,然后在ItemDatabound事件中添加,从标签中查找复选框的值,并将checked或not的值分配给checkbox。