如何在GridView
的单个列中显示多个值?例如,当我在TextBox
中搜索“ Ivan”时,输出将返回Ivan的多行,如下所示:
命名任务
伊万·塔斯(Ivan Task1)
伊万Task2
伊万·塔斯(Ivan Task3)
我想要这样的东西
命名任务
伊凡(Ivan)任务1,任务2,任务3
我的桌子是这样的
员工(编号,姓名)
任务(ID,名称)
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/