【问题标题】:Select grouped data and bind it to listview/gridview best practice选择分组数据并将其绑定到 listview/gridview 最佳实践
【发布时间】:2023-03-06 13:44:01
【问题描述】:

例如,如果您对数据进行分组,最好的方法是什么:(我已经简单化了这个例子的所有内容)

物品类别表:

itemId itemCategoryId itemName
1      1              item1
2      1              item2
3      2              item3
4      1              item4
5      3              item5    

和分类表

itemCategoryId itemCategory
1              category1
2              category2
3              category3

因此,如果我选择所有项目,我将得到与第一个表相同的结果(可能与 itemCategory ...)

但是当我在 Listview/Gridview 或其他任何东西中绑定所有内容时,我想将项目分组到类别中,所以如果我有与上面相同的数据,我在 Listview/gridview 中的结果...应该如下所示:

category1:
  1 item1
  2 item2
  4 item4
category2:
  3 item3
category3:
  5 item5

您认为最好的方法是什么。我正在使用 sql-server 2008 和 Visual Studio 2010 ASP.NET c#。感谢您的帮助

我不想从适合这个类的数据库中得到结果:

public class Item
{
    public int itemId { get; set; }
    public string itemName { get; set; }

    public Item() { }

    public Item(int itemId, string itemName) 
    {
        this.itemId = itemId;
        this.itemName = itemName;
    }
}

public class GroupOfitems
{
    public string itemCategory{ get; set; }
    public List<Item> itemList { get; private set; }

    public GroupOfitems()
    {
        itemList = new List<Item>();
    }

    public GroupOfitems(string itemCategory, List<Item> itemList)
    {
        this.itemCategory= itemCategory;
        this.itemList = itemList;
    }
}

所以我可以将上面表格中的数据保存在 GroupOfItems 类中...

【问题讨论】:

    标签: c# asp.net sql-server-2008 tsql


    【解决方案1】:

    我会推荐使用 ListView,有更多的分组支持。在您的 SELECT 查询中,您应该按“itemCategory”对行进行分组。 See this tutorial 了解如何在代码中声明 ListView 的详细信息。

    【讨论】:

    • 我无法按 itemCategory 进行分组,因为同一类别包含更多项目。这个列表视图分组对我来说不是正确的答案。使用组模板,您可以使列表视图中的项目看起来像组,但每个项目都是一个组。我想在同一组中有更多项目(基于结果数据)。所以这不是我想要的答案
    • 当然,您需要编写一些自定义代码,但 ListView 绝对适合您想要实现的目标。这个话题在这个网站和其他博客上得到了各种报道,linklink
    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多