GridView to DataTable: пропустить определенные столбцы - PullRequest
1 голос
/ 14 июля 2011

Пожалуйста, прочитайте этот код:

    Dim dt As New DataTable

    For Each col As DataControlField In GridView1.Columns
        dt.Columns.Add(col.HeaderText)
    Next

    For Each row As GridViewRow In GridView1.Rows
        Dim nrow As DataRow = dt.NewRow
        Dim z As Integer = 0
        For Each col As DataControlField In GridView1.Columns
            nrow(z) = row.Cells(z).Text.Replace(" ", "")
            z += 1
        Next
        dt.Rows.Add(nrow)
    Next

Как я могу пропустить определенные столбцы сетки вида?Например: столбцы 1, 3 и 6

Спасибо всем за уделенное время!

1 Ответ

0 голосов
/ 09 августа 2011
Dim dt As New DataTable
For Each col As DataControlField In GridView1.Columns
If (col.Index <> 1) and (col.Index <> 3) and (col.Index <> 6) then
dt.Columns.Add(col.HeaderText)
End If
Next
For Each row As GridViewRow In GridView1.Rows
Dim nrow As DataRow = dt.NewRow
Dim z As Integer = 0
For Each col As DataControlField In GridView1.Columns
If (col.Index <> 1) and (col.Index <> 3) and (col.Index <> 6) then
nrow(z) = row.Cells(z).Text.Replace("&nbsp;", "")
z += 1
End If
Next
dt.Rows.Add(nrow)
Next

Разве это не было бы близко к тому, что вы хотите?

Итерационный цикл For-Each проходит через КАЖДЫЙ элемент, и вы можете отфильтровать нежелательные элементы, как показано.

Или вы можете создать массив всех индексов, которые хотите обработать, и выполнить итерацию по этому массиву, чтобы обрабатывать только столбцы только с нужными индексами.

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