0

asp.net ページにデータリストがあります。コードビハインドでデータソースをバインドし、このデータリストにチェックボックスを持っています。

 var n = from gi in DataContext.Context.GalleryImages
                join g in DataContext.Context.Galleries
                on gi.GalleryID equals g.GalleryID
                where g.UserID == UserID && gi.GalleryID==GalleryID
                select new
                {
                    GalleryID = g.GalleryID,
                    ImageDescription = gi.ImageDescription,
                    GalleryName = g.GalleryName,
                    ImageFileName = gi.ImageFileName,
                    IsAlbumImage = gi.IsAlbumImage,
                    ImageID=gi.ImageID
                };

        dlGalleryList.DataSource = n;
        dlGalleryList.DataBind();

「IsAlbumImage」が true の場合、チェックボックスをオンにする必要があります。このプロパティをチェックボックスにバインドするにはどうすればよいですか?

4

3 に答える 3

0

実際には、データリストにチェックボックスをバインドする方法が必要です 1- (推奨) Bind または Eval を使用して ASP コードから直接バインドする

<ItemTemplate>
    <asp:CheckBox id="MyCheckBox" runat="server"  Checked='<%#Eval("IsAlbumImage") %>' />
</ItemTemplate>

2- ItemDataBound イベントにバインドする

まず、イベント ハンドラーをデータリスト コントロールに追加し、ブール値をデータキーに追加して、itemdatabound イベントで使用します。

<asp:DataList ID = "DataList1"  OnItemDataBound="DataListItemEventHandler"  DataKeys = "IsAlbumImage"/>

次に、これをバインドする C# コードを追加します

protected void DataListItemEventHandler(object sender, DataListItemEventArgs e)
{
CheckBox checkbx = new CheckBox();
checkbx = (CheckBox)e.Item.FindControl("MyCheckBox");
checkbx.Checked = (bool) DataList1.DataKeys(e.Item.ItemIndex)("IsAlbumImage");
}
于 2013-09-01T09:39:34.563 に答える
0

次のようにバインドする必要があります。

<ItemTemplate>
    <asp:CheckBox id="MyCheckBox" runat="server"  Checked='<%#Eval("IsAlbumImage") %>' />
</ItemTemplate>
于 2013-09-01T06:56:27.003 に答える