JQuery Ajax пост для создания PDF - PullRequest
0 голосов
/ 31 октября 2011

Моя проблема в том, что когда я нажал кнопку вызова «Печать», он получит данные из таблицы и отправит ajax через jQuery для вызова метода страницы для создания pdf, но ничего не происходит.

Это мой код

Клиент

function Print(button) {
                var arrDTO = new Array();
                var printButton = $(button);
                var $targetTable = printButton.parent().parent().find('table');
                var $tr = $targetTable.find('tbody tr');

                for (var i = 0; i < $tr.length; i++) {
                    var newObj = {};
                    var td = $($tr[i]).find('td');
                    newObj.BugID = $(td[0]).find('a').html().trim();
                    newObj.Title = $(td[2]).find('a').html().trim();
                    newObj.HouseName = $(td[3]).html().trim();
                    newObj.RoomName = $(td[4]).html().trim();
                    newObj.ThePersonResponsibleName = $(td[5]).html().trim();
                    newObj.FAGName = $(td[6]).html().trim(); 
                    newObj.CompanyName = $(td[7]).html().trim();
                    newObj.Reminders = $(td[8]).html().trim();
                    newObj.Delayed = $(td[9]).html().trim();
                    newObj.Appendix = $(td[10]).html().trim();
                    newObj.MoreInfo = $(td[11]).html().trim();
                    newObj.DeadLine = $(td[12]).html().trim();
                    newObj.Comment = $(td[13]).find('input[type=\"text\"]').val().trim();
                    newObj.Retention = $(td[14]).find('label').html().trim();
                    newObj.Discount = $(td[15]).html().trim();
                    newObj.Balance = $(td[16]).html().trim();
                    newObj.StatusName = $(td[17]).html().trim();

                    arrDTO[i] = newObj;

                    //alert('row ' + (i + 1) + ' ' + arrDTO[i].BugID); 
                }

                var DTO = { 'issueType2ViewModel': arrDTO };

                $.ajax({
                    "type": "POST",
                    "url": "IssuesType2.aspx/Print",
                    "data": JSON.stringify(DTO),
                    "contentType": "application/json; charset=utf-8",
                    "dataType": "json",
                    "success": function (data) {
                        alert('success');
                        //window.location = "/1.pdf";
                    },
                    "error": function (data) {
                        alert('Error');
                    }
                });
            }

Это я, код сервера

[System.Web.Services.WebMethod()]
        public static void Print(Old_App_Code.ViewModel.IssueType2ViewModel[] issueType2ViewModel)
        {
            //HttpContext.Current.Request[
            int projectID = 0;
            int catID = 0;

            if (HttpContext.Current.Request["pid"] != null)
            {
                projectID = Convert.ToInt32(HttpContext.Current.Request["pid"]);

                if (HttpContext.Current.Request["Cat"] != null)
                {
                    catID = Convert.ToInt32(HttpContext.Current.Request["Cat"]);
                }
            }

                System.IO.FileStream fs = new FileStream(HttpContext.Current.Request.PhysicalApplicationPath + "\\" + "Test.pdf", FileMode.Create);
                Document doc = new Document(PageSize.A4_LANDSCAPE, 1, 1, 1, 1);
                PdfWriter writer = PdfWriter.GetInstance(doc, fs);
                doc.Open();
                doc.Add(new Paragraph("Hello World"));
                doc.Close();
                writer.Close();
                HttpContext.Current.Response.ContentType = "pdf/application";
                HttpContext.Current.Response.AddHeader("content-disposition",
                "attachment;filename=First PDF document.pdf");
                HttpContext.Current.Response.Redirect("~/Test.pdf");
        }

Но ничего не случилось с этим. Что плохого я делаю?

1 Ответ

0 голосов
/ 31 октября 2011

Исходя из вызова ajax, вы должны как минимум получить успех или ошибку.

как насчет попытки отладки кода вашего сервера.

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