【发布时间】:2014-09-26 03:46:44
【问题描述】:
在我的 MVC 4 应用程序中,我正在寻找用于下拉列表的 optgroup,发现 this 非常有用。
我也按照这些步骤实现了这一点,但目前我遇到了一些问题。我的控制器代码如下所示:
Model.ddlProject = db.Projects.OrderBy(t => t.Type)
.Select(t => new GroupedSelectListItem
{
GroupName = t.Type,
Text = t.Name,
Value = SqlFunctions.StringConvert((decimal)t.Id)
});
分组在这里完成,但我想要以不同的方式。有了这个我可以绑定下拉列表,如下所示:
现在让我介绍一下我的表结构。我有一张表,结构如下:
这里我有一个层次结构,例如 Customer -> Client -> Projects 。因此,我需要按客户分组,以便所有项目都应列在客户下。我想要这样的东西:
因此我一直在这里查询,实现此目的的查询。我需要在组名中显示所有客户名称,对于客户,我需要列出所有相应的项目。我想我很清楚我的要求。有点卡在这里,所以任何帮助都会很棒。在此先感谢。
【问题讨论】:
-
你真的应该考虑重组你的数据库表。项目和客户是两个不同的东西。您应该有一个 Client 表和一个单独的 Project 表,其中包含一个具有 Client 表外键的列。
-
我想知道这种情况,我确实需要不同的表,但我不应该更改数据库结构。那么有没有可能在不更改数据库的情况下实现这一点的方法。感谢您的快速响应.
-
可能不会。我看不到任何分组数据的方式。您可以创建自己的类来表示层次结构并遍历每一行以分配值,但为什么要麻烦。只需正确创建数据库即可。
-
@Saroj:检查我的答案...
标签: sql-server linq asp.net-mvc-4 linq-to-entities