gpt4 book ai didi

sql-server - MVC 4 中下拉列表的 Optgroup

转载 作者:行者123 更新时间:2023-12-04 01:49:33 26 4
gpt4 key购买 nike

在我的 MVC 4 应用程序中,我正在寻找下拉列表的 optgroup 并找到 this 很有帮助。

我按照这些步骤也实现了,但目前我面临一些问题。我的 Controller 代码如下所示:

Model.ddlProject = db.Projects.OrderBy(t => t.Type)
.Select(t => new GroupedSelectListItem
{
GroupName = t.Type,
Text = t.Name,
Value = SqlFunctions.StringConvert((decimal)t.Id)
});

分组在这里完成,但我希望以不同的方式进行。有了这个我可以绑定(bind)下拉列表,如下所示:

enter image description here

现在让我介绍一下我的表结构。我有一个具有以下结构的表:

enter image description here

在这里,我有一个层次结构,例如 Customer -> Client -> Projects 。因此,我需要按客户分组,以便所有项目都应列在客户下。我想要这样的东西:

enter image description here

因此,我一直在这里查询,实现此目的的查询。我需要在组名中显示所有客户名称,对于客户,我需要列出所有相应的项目。我想我很清楚我的要求。种类被困在这里,所以任何帮助都会很棒。在此先感谢。

最佳答案

斯蒂芬·穆克 在评论部分说项目和客户是两件不同的事情。您应该有一个 Client 表和一个单独的 Project 表,其中包含一个具有 Client 表外键的列。所以下面的解决方案是根据你现有的表结构。

虚拟架构

DECLARE @clientprj TABLE ([id] int identity(1,1), [name] varchar(30), Desc1 varchar(30), ParentId int, pType varchar(30));

INSERT @clientprj ([name], Desc1, ParentId, pType) VALUES ('client1', '', 0, 'clt'), ('prj1', '', 1, 'prj'), ('prj2', '', 1, 'prj'), ('client2', '', 0, 'clt'), ('prj n', '', 4, 'prj')

这是查询
SELECT GroupName, GroupKey, ProjName, ProjId
FROM
(
(
SELECT NAME AS GroupName
,Id AS GroupKey
FROM @clientprj m
WHERE ParentId = 0
) m
FULL OUTER JOIN
(
SELECT NAME AS ProjName
,Id AS ProjId
,ParentId
FROM @clientprj
)
t ON m.GroupKey = t.ParentId
)
WHERE ParentId <> 0

返回以下输出。
GroupName   GroupKey    ProjName    ProjId
client1 1 prj1 2
client1 1 prj2 3
client2 4 prj n 5

以及像这样调用此查询的 Controller 方法-
Model.ddlProject = db.NewMethod
.Select(t => new GroupedSelectListItem
{
GroupName = t.GroupName,
GroupKey = t.GroupKey.ToString(),
Text = t.ProjName,
Value = t.ProjId.ToString()
});

然后绑定(bind)您的下拉列表。祝你好运...

关于sql-server - MVC 4 中下拉列表的 Optgroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26051725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com