Using the wizard control - cannot use Response.Write

I have an export routine as follows that works great on an aspx web form.  Essentially a datareader is exported to a csv file with ability to download file onto desktop.
Here is the code snippet.

     using (StringWriter sw1 = new StringWriter(sb1))
                {
                    sw1.Write(thisReader.GetName(4) + "," + thisReader.GetName(5) + "," + thisReader.GetName(7));
                    while (thisReader.Read())
                    {
                        sw1.WriteLine(thisReader["FirstName"] + "," + thisReader["LastName"] + "," + thisReader["Address1"]);
                    }
                    Response.Clear();
                    Response.AddHeader("content-disposition", "attachment;filename=" + filename);
                    Response.Write(sw1.ToString());



Now if I put this code as part of a wizard control - I don't get the popup save dialog box.  How can I fix this?
mugseyAsked:
Who is Participating?
 
JoeDWConnect With a Mentor Commented:
Not sure you if you have solved this already, but this is the code I use and I know it works for me. Now granted it is for a file that exists on the drive already but I believe it might help
FileInfo file = new FileInfo(svrPath);
 
                if (file.Exists)
                {
                    // clear the current output content from the buffer 
                    Response.Clear();
                    // add the header that specifies the default filename for the Download/SaveAs dialog 
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
                    // add the header that specifies the file size, so that the browser 
                    // can show the download progress 
                    Response.AddHeader("Content-Length", file.Length.ToString());
                    // specify that the response is a stream that cannot be read by the 
                    // client and must be downloaded 
                    Response.ContentType = "application/octet-stream";
                    // send the file stream to the client 
                    Response.WriteFile(file.FullName);
 
                    downloaded = true;
 
                }

Open in new window

0
 
REA_ANDREWCommented:
Try this:
                    Response.Clear();
                    Response.AddHeader("content-disposition", "attachment;filename=" + filename);
                    Response.Write(sw1.ToString());
 
//try adding the following line afterwards
                    Response.End();

Open in new window

0
 
mugseyAuthor Commented:
Thanks Andrew

But this still does not work.  Any more suggestions..?
0
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
Maverick_CoolCommented:

            Response.ContentType = "whatever";
             Response.AddHeader("content-disposition", "attachment;filename=" + filename);
0
 
Maverick_CoolCommented:
Try addin contentType

            Response.ContentType = "whatever";
             Response.AddHeader("content-disposition", "attachment;filename=" + filename);
            Response.ContentType = "whatever";
             Response.AddHeader("content-disposition", "attachment;filename=" + filename);

Open in new window

0
 
REA_ANDREWCommented:
try fludhing the string writer to push all the text into the StringBuilder.


     using (StringWriter sw1 = new StringWriter(sb1))
                {
                    sw1.Write(thisReader.GetName(4) + "," + thisReader.GetName(5) + "," + thisReader.GetName(7));
                    while (thisReader.Read())
                    {
                        sw1.WriteLine(thisReader["FirstName"] + "," + thisReader["LastName"] + "," + thisReader["Address1"]);
                    }
                    sw1.Flush();
                    Response.Clear();
                    Response.AddHeader("content-disposition", "attachment;filename=" + filename);
                    Response.Write(sw1.ToString());

Open in new window

0
 
mugseyAuthor Commented:
Sorry guys - this still does not work.
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.