how to fix web method error: Thread was being aborted: HttpContext.Current.Response.[End]()

hi,

I have web method to download csv file (from datatable) using jquery ajax

now everything is fine, but when the code reached to line:
HttpContext.Current.Response.[End]()
its exiting the method, and returning this error message in firebug: Thread was being aborted.

I tried to remove this line, but I didn't get the file to be saved,

here is my code:

    <WebMethod()> _
    Public Shared Function ExportReportAjax(ByVal ExportType As Integer, ByVal DataToExport As String) As String

        Dim clientID As String = HttpContext.Current.Session("ClientID")
        Dim strCheck As String = "Select Client_ClassID from dbo.CTS_Clients where Client_ID= " & clientID

        Dim dsCheck As DataSet = clsDB.getData(strCheck)

        Dim response As HttpResponse = HttpContext.Current.Response

        ExportToSpreadsheet(dsCheck.Tables(0), "asfas")

        Return ""
    End Function

    Public Shared Sub ExportToSpreadsheet(ByVal table As DataTable, ByVal name As String)
        Dim context As HttpContext = HttpContext.Current
        context.Response.Clear()

        For Each column As DataColumn In table.Columns
            context.Response.Write(column.ColumnName + ";")
        Next

        context.Response.Write(Environment.NewLine)

        For Each row As DataRow In table.Rows
            For i As Integer = 0 To table.Columns.Count - 1
                context.Response.Write(row(i).ToString().Replace(";", String.Empty) & ";")
            Next
            context.Response.Write(Environment.NewLine)
        Next

        context.Response.ContentType = "text/csv"
        context.Response.AppendHeader("Content-Disposition", "attachment; filename=" & name & ".csv")
        context.Response.[End]()
    End Sub

Open in new window

njgroupAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Rajar AhmedConsultantCommented:
'While using update panel , Response.end makes this problem . You can skip that exception by the below way .

Public Shared Sub ExportToSpreadsheet(ByVal table As DataTable, ByVal name As String)
try
        Dim context As HttpContext = HttpContext.Current
        context.Response.Clear()

        For Each column As DataColumn In table.Columns
            context.Response.Write(column.ColumnName + ";")
        Next

        context.Response.Write(Environment.NewLine)

        For Each row As DataRow In table.Rows
            For i As Integer = 0 To table.Columns.Count - 1
                context.Response.Write(row(i).ToString().Replace(";", String.Empty) & ";")
            Next
            context.Response.Write(Environment.NewLine)
        Next

        context.Response.ContentType = "text/csv"
        context.Response.AppendHeader("Content-Disposition", "attachment; filename=" & name & ".csv")
        context.Response.[End]()
return ""
catch ex as exception
 if (instr(lcase(ex.message),"thread was being aborted") then
return "" 
end if
end try
end sub
0
 
njgroupAuthor Commented:
same error, even in try catch, the error is thrown !
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.