I created an asp.net site for downloading documents. I handle this with Page.Response.
try {
...
    EndpointAddress endPoint = new EndpointAddress("xxxxx.svc");
    FileServiceClient fileServiceProxy = new FileServiceClient(binding, endPoint);
    // WCF WebService call
    Stream stream = fileServiceProxy.GetFileStream(filePath);
    Page.Response.ContentType = "application/pdf";
    Page.Response.AddHeader("Content-Disposition",string.Format   ("attachment; fileName=\"{0}\"", Path.GetFileName(filePath)));
    Page.Response.AddHeader("Accept-Ranges", "bytes");
    if (buffer != null){
        Page.Response.BinaryWrite(buffer);
    }
    Page.Response.Flush();
}
catch (Exception e)
{
    Page.Response.Clear();
    Page.Response.ClearContent();
    Page.Response.ClearHeaders();
}
finally
{
    Page.Response.End();
}
And while the file is loading from a webservice I want to display a hourglass cursor. Showing loading cursor is working.
protected void Page_Load(object sender, EventArgs e)
{
    btnDownload.Attributes.Add("onclick", "document.body.style.cursor = 'wait';");
}
But I can't change it back to normal cursor. I think because I don't fire a post back or don't reload the site. What can I do to set default cursor if buttonClick event is over without site reload!?
Update: Updated the code with the wcf webservice call. I call the webservice with file path and get a stream back which I write to Page.Response.BinaryWriter
