Изменение данных из многих столбцов в 2 - PullRequest
0 голосов
/ 14 мая 2018

У меня есть таблица данных со многими столбцами, например, так:

Name | Age | Foo | Bar | Etc..
Joe | 30 | foo | bar | Etc..

Теперь мне нужно получить эту таблицу данных всего в два столбца, состоящих только иззаголовки, за которыми следуют их значения, например:

Header | Value
Name | Joe
Age | 30
Foo | foo
Etc... | etc..

Этотак что DataBinder может легко получить к нему доступ, когда данные связаны.

Как это можно сделать, и нужно ли мне вообще это делать?

РЕДАКТИРОВАТЬ: Включая пример кода

asp.net

<div class="itemDetail col-s">                                                                                                                       
  <div class="itemDetailLabel">                                                                                                                            
    <%# DataBinder.Eval(Container.DataItem, "Caption")%>                                                                                                                        
  </div>                                                                                                                        
  <div class="itemDetailValue">                                                                                                                       
    <%# If(DataBinder.Eval(Container.DataItem, "UIValue") Is Nothing OrElse String.IsNullOrEmpty(DataBinder.Eval(Container.DataItem, "UIValue").ToString()), "&nbsp;", DataBinder.Eval(Container.DataItem, "UIValue"))   %>                                                                                                                        
  </div>                                                                                                                    
</div>

vb.net

Dim oldDataTable As DataTable = DataSource ''Which is a datatable of a single row
Dim newDataTable As New DataTable

newDataTable.Columns.Add("Caption")
newDataTable.Columns.Add("UIValue")

''Change the single row into multiple rows

fooControl.DataSource = newDataTable
fooControl.DataBind()

EDIT2: Так что для тех, кто все еще учится, как яэто называется транспонированием.Спасибо за @ gofal3 за указание на это

1 Ответ

0 голосов
/ 14 мая 2018

Вы должны транспонировать DataTable.Насколько я знаю, встроенного метода не существует, но для этого нужно написать собственный код.Но есть много примеров, как это сделали другие.Например: https://www.codeproject.com/Articles/44274/Transpose-a-DataTable-using-C или Транспонирование данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...