Установка флажка, который будет отмечен / снят, в зависимости от результата столбца в списке данных - PullRequest
2 голосов
/ 23 мая 2011

У меня есть 2 флажка [isSold (бит), Offline (бит)] в списке данных, я хочу установить этот флажок, чтобы он был отмечен или снят, в зависимости от результата базы данных этой строки. Например, если продукт продан, столбец продано будет истинным, поэтому флажок должен быть установлен. Я пытался добиться нужного результата, используя приведенный ниже код, но безуспешно:

    <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>

Ответы [ 2 ]

4 голосов
/ 23 мая 2011

Прежде всего, это должно работать: 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"]);
     }
    }
}
1 голос
/ 23 мая 2011

Что вы можете сделать, это сохранить значение вместо флажка, а затем в событии ItemDatabound вы можете добавить найти значение флажка из метки и присвоить значение флажка или нет флажку.

...