показать pdf с bytestream в панели обновлений - PullRequest
1 голос
/ 31 мая 2011

Я хочу отправить pfd в байтовом потоке пользователю в панели обновления, но не могу заставить его работать.

            Print print = new Print();
            byte[] pdfTransport;
            pdfTransport = //get the byte array
            Response.ClearContent();
            Response.ClearHeaders();
            Response.ContentType = "application/pdf";
            Response.AddHeader("Content-Disposition", "attachment; filename=Tpt" + lblTransportNr.Text + DateTime.Now.ToString().Replace(",", "") + ".pdf");

            Response.BinaryWrite(pdfTransport);
            string value;
            System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
            value = enc.GetString(pdfTransport);
            Response.End();
            Response.Flush();
            Response.Clear();

Если я использую это, он работает без панели обновления в.Страница ASPX.Когда я помещаю страницу в панель обновления, я получаю сообщение об ошибке разбора.У кого-нибудь есть идея, чтобы избежать этой проблемы или решить ее?Thx.

Ответы [ 2 ]

1 голос
/ 31 мая 2011

На самом деле вы не можете отправлять байтовые потоки через AJAX-запрос, это всего лишь технологическое ограничение. А UpdatePanel использует асинхронные запросы (AJAX).

0 голосов
/ 31 мая 2011

не понимаете, что вы хотите .... хотите ли вы увидеть 1. содержимое PDF на веб-странице или 2. двоичный файл PDF в удобочитаемом формате?

if 1.: не использовать панель обновления ... но вставлять iframe в pdf url

если 2.: не писать в ответ, с установленным свойством Text метки внутри панели обновления

...