1

Label を Container.DataItem 内の Generic リストの Property にバインドしたいと考えています。

ここで、Container.DataItem で List を受信して​​います。List を含むこの Container.DataItem 内に移動したいと考えています。

Aspx コード

<asp:Label ID="Label1" runat="server" Text='<%# Container.DataBind %>'></asp:Label>

出力:

System.Collection.Generic.List'1[Sizes]

C# コード:

List<List<Sizes>> Combosizes =new List<List<Sizes>>();

foreach (var i in skuIdsList)
 {
 var Sizes_list = (from item in sizes
 where item.SkuId == i.skuid
 select new Sizes
    {
     skusizeid = item.SkuSizeId,
     sizevalue = item.Sizevalue
    }).ToList();

   Combosizes.Add(Sizes_list);
 }

DataList3.DataSource = Combosizes;
DataList3.DataBind();

これは、List> を DataList3 にバインドしたものです。そして、DataList3 内のラベルを List of List の最初のインデックスにバインドしようとしています。

解決策はありますか?

4

1 に答える 1

0
List<List<Sizes>> Combosizes =new List<List<Sizes>>();

foreach (var i in skuIdsList)
{
var Sizes_list = (from item in sizes
where item.SkuId == i.skuid
select new Sizes
{
skusizeid = item.SkuSizeId,
sizevalue = item.Sizevalue,
description = item.Description
}).ToList();

Combosizes.Add(Sizes_list);
}

DataList3.DataSource = Combosizes;
DataList3.DataBind();

データリスト項目のデータバインドイベントで値をラベルにバインドできます。

 protected void DataList3_ItemDataBound(object sender, DataListItemEventArgs e)
{
var des = (List<Sizes>)(e.Item.DataItem);
Label lblsize = e.Item.FindControl("lblsize") as Label;
lblsize.Text = des.First().description;
}
于 2012-08-29T09:38:50.057 に答える