如何在datalist itemtemplate中显示datalist

时间:2011-06-16 11:38:01

标签: asp.net linq-to-sql webforms datalist listcontrol

这是我在ASP.NET网络表单项目中遇到的问题。

我有Datalist,显示数据库中的所有产品,每个产品都有一种或多种颜色。 目前我写这样的查询是为了显示所有产品和默认照片,但不是与该产品相关的颜色:

var query = from p in db.Products
                        from c in db.Pics
                        where c.ProductId == p.ProductId
                        where c.IsDefault == true
                        select new { p.ProductId, p.ProductType, p.Name, p.Number, p.Package, p.Model, p.Size, p.Material, p.MantoLengh, c.PicAddress};

            DataList1.DataSource = query;
            DataList1.DataBind();

我不知道如何将相关颜色绑定到我的DataList控件内的列表控件(如datalist或其他列表控件),这里是我的数据库图表的视图,以获取更多信息:

enter image description here

2 个答案:

答案 0 :(得分:1)

我认为这个查询会有效但我提前道歉如果我的语法略有不同,那么VB比C#更多......

        var query = from p in db.Products 
                    select new { p.ProductId, 
                        p.ProductType, 
                        p.Name, 
                        p.Number, 
                        p.Package, 
                        p.Model, 
                        p.Size, 
                        p.Material, 
                        p.MantoLengh, 
                        p.Pics.Where(x => x.IsDefault).Select(x => x.PicAddress).ToList(), 
                        p.Colors.Select(x => x.ColorHex).ToList() };

基本上,在您选择的anonymouse类型中,您可以使用lambda来使用Select()。ToList()获取一对多集合,并使用.Where()来执行过滤。

希望有所帮助。

编辑 - 回应您的评论:

我选择了十六进制颜色字符串,因为它们看起来是创建实际颜色的最佳选择。要从十六进制中调出颜色,请参阅this article。列表中的哪个位置要添加颜色?

答案 1 :(得分:0)

我相信在将结果绑定到您的datalist之后,您应该可以在DataList中执行类似的操作 $<%#query.DataItem( “颜色”)%>

相关问题