Лучший способ загружать файлы, которые проверены в виде сетки - PullRequest
0 голосов
/ 19 июня 2019

У меня есть вид сетки с колонкой флажков, а затем несколько столбцов данных.Когда выбрана одна строка, отображается соответствующее изображение.Любая строка может быть проверена без выбора, и когда нажата кнопка загрузки, все изображения с соответствующими им строками должны быть загружены.Прямо сейчас у меня есть цикл for, проходящий через каждую строку и находящий флажок и проверяющий, проверен ли он на отсутствие, и это занимает слишком много времени.Есть ли способ получить доступ к данным соответствующей строки, когда флажок установлен?

For Each row As GridViewRow In gv1.Rows
  Dim chkBox As CheckBox = TryCast(row.FindControl("cBox"), CheckBox)
  If chkBox.Checked Then
    Dim full = row.Cells(1).Text & "B" & row.Cells(3).Text
    IO.File.Copy(serv & full & ".TIF", Path.Combine(temp, full & ".TIF"), True)
  End If
Next

1 Ответ

0 голосов
/ 20 июня 2019

Это прекрасно работает для меня, очень эффективно. Это была копия IO, которая занимала слишком много времени.

Using zip As New ZipFile()
        zip.AlternateEncodingUsage = ZipOption.AsNecessary
        zip.AddDirectoryByName("Drawings")
        For Each row As GridViewRow In gv1.Rows
            If TryCast(row.FindControl("cBox"), CheckBox).Checked Then
                found = True
                Dim filepath = serv & row.Cells(1).Text & "B" & row.Cells(3).Text & ".TIF"
                zip.AddFile(filepath, "Drawings")
            End If
        Next
        If found Then
            Response.Clear()
            Response.BufferOutput = False
            Dim zipname As String = [String].Format("Drawings_{0}.zip", DateTime.Now.ToString("yyyy-MM-dd-HH:mm:ss"))
            Response.ContentType = "application/zip"
            Response.AddHeader("content-disposition", "attachment; filename=" + zipname)
            zip.Save(Response.OutputStream)
            Response.End()
        Else
            reSetup()
        End If
    End Using
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...