根据数据列表中的列结果设置要选中/取消选中的复选框
本文关键字:复选框 取消 设置 数据 列表 结果 | 更新日期: 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='<%#"£ "+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") %>' /> <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。