如何在 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/