Привязка DetailsView корректно, но отображается только одно поле

#c# #asp.net

#c# #asp.net

Вопрос:

У меня привязан DetailsView для получения данных. Он правильно возвращает 4 строки информации, но отображает только

Навык: Javascript

Я предполагаю, что мне не хватает какого-то цикла для его реализации для отображения

 Skill : Javascript
Skill : C#
Skill : Actionscript 3
Skill : HTML
  

Как бы мне реализовать его так, чтобы оно вело себя как

 Skill : Javascript, C#, Actionscript 3, HTML
  

Если бы кто-нибудь мог предложить hwo для реализации этого, я был бы признателен.

Комментарии:

1. Моя проблема была исправлена с помощью комбинации обоих ответов, и изменение моего SQL также значительно упрощает задачу. Спасибо 🙂

Ответ №1:

Используется DetailsView для отображения сведений об одном объекте. Вы не можете привязать коллекцию.

Если вы хотите отобразить список, используйте, например, повторитель.

  <asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate>
             <table border="1">
          </HeaderTemplate>
          <ItemTemplate>
             <tr>
                <td> Skill: </td>
                <td> <%# Eval("Skill") %> </td>
             </tr>
          </ItemTemplate>
          <FooterTemplate>
             </table>
          </FooterTemplate>
       </asp:Repeater>
  

Ответ №2:

DetailsView работает с записями. Если у вас есть 4 строки, вы можете объединить их следующим образом:

 var skills = objects.Select(i => i.Skill);
string skill = String.Join(",", skills);

this.dvw.DataSource = new { Skill = skill };
this.dvw.DataBind();
  

По сути, вам нужно выполнить объединение с одной записью.