VB.net 使用 StringBuilder 避免不可见的 gridview 行
VB.net Avoid Non-Visible gridview rows with StringBuilder
但是我当前的 gridview 有各种隐藏行;当我将行复制到 csv 文件时,它会将隐藏的行显示为空行。但是,我试图通过行 If (DisplaySup.Rows(i).Visible = True)
来传递空行;空行仍然出现。有解决办法吗?
Protected Sub SheetSave_Click(sender As Object, e As EventArgs) Handles SheetSave.Click
Response.Clear()
Response.Buffer = True
Response.AddHeader("content-disposition", "attachment;filename=gvtocsv.csv")
Response.Charset = ""
Response.ContentType = "application/text"
Dim sBuilder As StringBuilder = New System.Text.StringBuilder()
For index As Integer = 1 To DisplaySuppliers.Columns.Count - 1
sBuilder.Append(DisplaySuppliers.Columns(index).HeaderText + ","c)
Next
sBuilder.Append(vbCr & vbLf)
For i As Integer = 1 To DisplaySup.Rows.Count - 1
For k As Integer = 1 To DisplaySup.HeaderRow.Cells.Count - 1
If (DisplaySup.Rows(i).Visible = True) Then
sBuilder.Append(DisplaySup.Rows(i).Cells(k).Text.Replace(",", "").Replace(" ", "") + ",")
End If
Next
sBuilder.Append(vbCr & vbLf)
Next
Response.Output.Write(sBuilder.ToString())
Response.Flush()
Response.[End]()
End Sub
不管怎样,您都在添加换行符 - 您需要将其移到支票内!
示例:
For i As Integer = 1 To DisplaySup.Rows.Count - 1
If (DisplaySup.Rows(i).Visible = True) Then
For k As Integer = 1 To DisplaySup.HeaderRow.Cells.Count - 1
sBuilder.Append(DisplaySup.Rows(i).Cells(k).Text.Replace(",", "").Replace(" ", "") + ",")
Next
sBuilder.Append(vbCr & vbLf)
End If
Next
但是我当前的 gridview 有各种隐藏行;当我将行复制到 csv 文件时,它会将隐藏的行显示为空行。但是,我试图通过行 If (DisplaySup.Rows(i).Visible = True)
来传递空行;空行仍然出现。有解决办法吗?
Protected Sub SheetSave_Click(sender As Object, e As EventArgs) Handles SheetSave.Click
Response.Clear()
Response.Buffer = True
Response.AddHeader("content-disposition", "attachment;filename=gvtocsv.csv")
Response.Charset = ""
Response.ContentType = "application/text"
Dim sBuilder As StringBuilder = New System.Text.StringBuilder()
For index As Integer = 1 To DisplaySuppliers.Columns.Count - 1
sBuilder.Append(DisplaySuppliers.Columns(index).HeaderText + ","c)
Next
sBuilder.Append(vbCr & vbLf)
For i As Integer = 1 To DisplaySup.Rows.Count - 1
For k As Integer = 1 To DisplaySup.HeaderRow.Cells.Count - 1
If (DisplaySup.Rows(i).Visible = True) Then
sBuilder.Append(DisplaySup.Rows(i).Cells(k).Text.Replace(",", "").Replace(" ", "") + ",")
End If
Next
sBuilder.Append(vbCr & vbLf)
Next
Response.Output.Write(sBuilder.ToString())
Response.Flush()
Response.[End]()
End Sub
不管怎样,您都在添加换行符 - 您需要将其移到支票内!
示例:
For i As Integer = 1 To DisplaySup.Rows.Count - 1
If (DisplaySup.Rows(i).Visible = True) Then
For k As Integer = 1 To DisplaySup.HeaderRow.Cells.Count - 1
sBuilder.Append(DisplaySup.Rows(i).Cells(k).Text.Replace(",", "").Replace(" ", "") + ",")
Next
sBuilder.Append(vbCr & vbLf)
End If
Next