Преобразовать таблицу GridView в HTML-таблицу, но строки должны быть столбцами, а столбцы должны быть строками - PullRequest
1 голос
/ 18 августа 2011

У меня набор данных ds заполнен значениями. До сих пор я отображал значения в GridView.Теперь я хочу, чтобы все строки были столбцами, а столбцы - строками .

. У меня есть 2 варианта: либо 1 . Я могу напрямую преобразовывать сетку в столбцы и отображатьэто, или 2 Я могу преобразовать GridView в HTML, а затем написать циклы для преобразования.Я пробовал второй вариант, но не могу понять, как мне это сделать.Ниже мой код:

For Each dr In dt.Rows
    htmlTable = htmlTable + "<TR>"
    For Each dc In dt.Columns
        htmlTable = htmlTable + "<TD>" + ds.Tables(0).Columns(j).ToString() + ""
        j = j + 1
    Next
    i = i + 1
Next

С этим кодом я все еще получаю то же самое, что и GridView.Помогите, пожалуйста, преобразовать строки в столбцы и наоборот.

1 Ответ

1 голос
/ 19 августа 2011

Похоже, что вы пытаетесь написать таблицу HTML из DataTable в DataSet, переворачивая строки и столбцы.Код, который вы опубликовали, имеет несколько проблем, поэтому я использую его скорее как псевдокод для моего ответа.

Причина, по которой вы получаете то же самое (с точки зрения строк и столбцов), что и GridView, заключается в том, что вы перебираете каждую строку, а в каждой строке вы перебираете все столбцы - вы не переворачиваетестолбцы и строки вообще.

Попробуйте что-то вроде этого:

Dim htmlTable As StringBuilder = new StringBuilder()
Dim numberRows As Integer = ds.Tables(0).Rows.Count - 1
Dim numberCols As Integer = ds.Tables(0).Columns.Count - 1

htmlTable.Append("<table>")

' Loop through each column first
For i As Integer = 0 To numberCols
    htmlTable.Append("<tr>")

    ' Now loop through each row, getting the current columns value
    ' from each row
    For j As Integer = 0 To numberRows
        htmlTable.Append("<td>")
        htmlTable.Append(ds.Tables(0).Rows(j)(i))
        htmlTable.Append("</td>")
    Next

    htmlTable.Append("</tr>")
Next

htmlTable.Append("</table>")

' To get the value of the StringBuilder, call ToString()
Dim resultHtml = htmlTable.ToString()

Например, если у вас есть такая таблица:

col1 col2 col3

abc

def

ghi

jkl

Результат будет:

adgj

behk

cfil

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