c# - Asp.net C# gridview单列中的多个值

标签 c# asp.net gridview webforms

如何在 GridView 的单列中显示多个值?例如,当我在 TextBox 中搜索“Ivan”时,输出将返回多行 Ivan,如下所示:

Name Task
Ivan Task1
Ivan Task2
Ivan Task3

我想要这样的东西

Name Task
Ivan Task1, Task2, Task3

我的表是这样的

Employee (id,name)
Task(id,name)
EmployeeTask(employee.id,task.id)

这是我的sql代码

SELECT  e.name,  t.name
FROM EmployeeTask et
INNER JOIN employee e ON e.id = et.employee_id
INNER JOIN task t ON t.id = et.task_id
WHERE e.name = @Name

这是我的 GridView 标记

<Columns>
    <asp:BoundField DataField="name" HeaderText="Name" SortExpression="name"/>
    <asp:BoundField DataField="task" HeaderText="Task" SortExpression="task"/>        
</Columns>

最佳答案

在纯 SQL 中,以下是获得所需结果的方法,然后您可以将其输入到 GridView 中:

SELECT     e.name, REPLACE(REPLACE(REPLACE
                          ((SELECT     t.name
                              FROM         EmployeeTask AS et INNER JOIN
                                                    task AS t ON t.id = et.task_id
                              WHERE     (et.employee_id = e.id)
                              FOR XML RAW(''), ELEMENTS)
                   , '</name><name>', ', '), '<name>', ''), '</name>', '') AS EmployeeTasks
FROM         employee AS e
WHERE     (e.name = @Name)

本质上,它是一个子查询,它将任务扁平化为 XML 输出,然后用逗号替换标签。

关于c# - Asp.net C# gridview单列中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11127034/

相关文章:

asp.net - ASP.NET MVC Web 应用程序中的 View 逻辑和域逻辑之间的混淆

java - 无法为 GridView 布局设置背景颜色

asp.net - 保存 web.config 错误 访问被拒绝

c# - 将具体类转换为通用基接口(interface)

c# - SignalR 自主机断开超时(没有 Global.asax)

c# - 如何使用条件空运算符来检查空字符串?

javascript - 试图在后面的代码中的按钮上执行 javascript 'confirm'

c# - 在 gridview 列中查找值

sorting - 如何在 Yii2 GridView 中启用和禁用排序?

c# - 如何使用 System.DirectoryServices.ActiveDirectory.Domain 类获取域别名