【问题标题】:How to show datalist in datalist itemtemplate如何在数据列表项模板中显示数据列表
【发布时间】:2011-06-16 11:38:00
【问题描述】:

这是我在 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 或其他列表控件),这是我的数据库图的视图以获取更多信息:

【问题讨论】:

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


    【解决方案1】:

    我认为这个查询会起作用,但如果我的语法稍有问题,我提前道歉,我比 C# 更 VB...

            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() };
    

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

    希望对您有所帮助。

    编辑 - 回应您的评论:

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

    【讨论】:

    • 那么如何将颜色绑定到列表控件?
    • @Mostafa:我添加了一个链接来展示如何从十六进制字符串创建颜色。我不知道你想在列表框的哪个位置应用颜色,但希望这能让你开始
    【解决方案2】:

    我相信在你将结果绑定到你的数据列表之后,你应该能够在你的数据列表中做这样的事情 $

    【讨论】:

      猜你喜欢
      • 2021-11-02
      • 1970-01-01
      • 2016-10-14
      • 2021-08-08
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多