jquery - запросить файл Excel на $ .get - PullRequest
4 голосов
/ 25 мая 2011

Internet Explorer используется для запроса пользователю загрузить файл Excel после выполнения Response.Write

Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("Content-Disposition", "attachment;filename=\"sheet.xls\"");
            Response.RedirectLocation = "export.xls";
            Response.Charset = "";
EnableViewState = false;

            System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

            dataGridResult.RenderControl(oHtmlTextWriter);
            Response.Write(oStringWriter.ToString());

Это работает, когда я возвращаюсь на страницу с событием нажатия кнопки.

Я использую страницу в качестве службы и выполняю $.get(), но результаты отправляются обратно в формате HTML.Мне не предлагается открыть файл Excel.Как отправить приглашение пользователю?

$.get('ExcelService.aspx',
                        { batches: input },
                        function (data) {
                            alert(data);//I see HTML
                        });

Ответы [ 2 ]

2 голосов
/ 25 мая 2011

Это похожая тема с похожей проблемой («Я хотел бы сделать асинхронный запрос GET, который возвращает документ с типом содержимого MIME и вызывает диалоговое окно браузера« Сохранить ».»)

Как указать тип содержимого и расположение содержимого с помощью $ .ajax () GET response

Кто-то там предлагает обходной путь:

Если вы хотите программно открыть диалоговое окно сохранения, вы можете использовать jQuery, чтобы добавить скрытый iframe на страницу с URL-адресом в качестве src. При необходимости это диалоговое окно должно появиться.

<ч /> SAMPLE
JQuery - по щелчку (не нужно AJAX / получить)

            var dynamicUrl = 'ExcelService.aspx?batches=' + input;
            $('#excelPopup').attr('src', dynamicUrl);
            window.frames["#excelPopup"].location.reload();

HTML

<iframe id="excelPopup" style="visibility:hidden;height:0px;width:0px;"></iframe>
0 голосов
/ 25 мая 2011

Вы можете попробовать пост Ajax

$.ajax({        dataType: "HTML",
                cache: false,
                type: "GET",
                url: 'ExcelService.aspx';

это подскажет get и обладает большей гибкостью, чем просто использование jquery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...