ChrisKWHsu Ответов: 1

Как использовать экспорт jqxgrid в PDF


Как я могу использовать экспорт jqxGrid / iTextSharp в PDF ?
Я получаю данные с помощью "json".
Как можно ('jqxGridResult') экспортировать в PDF с помощью iTextSharp?

Что я уже пробовал:

function GetTestReportResult()
{   
 $.ajax({
  type: "POST",   
    url: "wsMethodDbData.asmx/getData", 
   contentType: "application/json; charset=utf-8",
   data: "{}",
   dataType: "json",
   success: OnSuccess,
   error: function (type) 
   { 
     $('#jqxLoader').jqxLoader('close'); 
     $("#errMsg").text("ERROR!!" + type.responseText);
     $("#messageNotification").jqxNotification("open");
   }
  });
                
  function OnSuccess(response)
   {
       var items;                    
       items = response.d;
                    
       if(items.length == 0)
       {
         $("#errMsg").text("No Data");
         $("#messageNotification").jqxNotification("open");
       }
       else
       {
        $('#jqxTabs').show();
        $('#jqxExpDesc').show(); 
                    
        GenerateGrid(items);
      }
                    
      $('#jqxLoader').jqxLoader('close');         
   }
 }


function GenerateGrid(data)
{
     var source =
     {
        datatype: "json",
        datafields: [
            {name:'Data0',type:'string'},
            {name:'Data1',type:'string'}
        ],
        localdata: data
     };

     var localdataAdapter = new $.jqx.dataAdapter(source);

     $("#jqxGridResult").jqxGrid(
     {
        width: '99%',
        height: '400px',
        autoheight: true,
        source: localdataAdapter,
        pageable: false,
        autoheight: false,
        sortable: false,
        altrows: false,
        enabletooltips: false,
        editable: false,
        autorowheight: false,
        showgroupaggregates: false,
        showaggregates: false,
        groupable: false,
        showstatusbar: false,
        sortable: true,
        showfilterrow: false,
        filterable: true,
        selectionmode: 'multiplecellsextended',
        columns:
        [
            {
                text: '#', align: 'center', sortable: false, filterable: false, editable: false, groupable: false, draggable: false, resizable: false, datafield: null, columntype: 'number', width: 60,
                cellsrenderer: function (row, column, value)
                {
                      return "<div style='margin:4px;'>" + (value + 1) + "</div>";
                }
            },
            {text:"Data0",width:200,align:'center',datafield:"Data0"},
            {text:"Data1",width:200,align:'center',datafield:"Data1"}
        ],
        theme: 'fresh'
    });
}

1 Ответов

Рейтинг:
1

Garth J Lancaster

Я думаю, вам придется написать метод для экспорта ваших данных JSON в виде таблицы PDF - это может быть отправной точкой jQGrid PDF экспорт[^] ... это также может быть полезно в JSON - JQGgrid - комментарий générer ООН компьютеризованная формате PDF или Excel à partir де описание де-ла-решетка[^]


ChrisKWHsu

спасибо, Гарт.
Мой инструмент разработки-VS2003, без MVC.
Как я могу экспортировать "$("#jqxGridResult").jqxGrid" в PDF ??

Garth J Lancaster

Ты хочешь, чтобы я написал это для тебя ? . э - э, нет-1) если вы студент, то вы должны предполагать, что ваши преподаватели наблюдают, и мы не окажем вам никакой услуги, обманывая вас, или "индустрия" окажет вам услугу, если вам придется работать с одним из нас в будущем 2) Если вам платят за это, то вы находитесь в лучшем положении, чем многие, включая меня, будучи "впавшим в спячку" благодаря Covid-19 . ..

- глядя на первое звено, которое я предоставил, там было вот это

private static void ExportPDF<TSource>(IList<TSource> customerList,string[] columns, string filePath)
{
    Font headerFont = FontFactory.GetFont("Verdana", 10, Color.WHITE);
    Font rowfont = FontFactory.GetFont("Verdana", 10, Color.BLUE);
    Document document = new Document(PageSize.A4);
    PdfWriter writer = PdfWriter.GetInstance(document, 
               new FileStream(filePath, FileMode.OpenOrCreate));
    document.Open();
    PdfPTable table = new PdfPTable(columns.Length);
    foreach (var column in columns)
    {
        PdfPCell cell = new PdfPCell(new Phrase(column, headerFont));
        cell.BackgroundColor = Color.BLACK;
        table.AddCell(cell);
    }
    
    foreach (var item in customerList)
    {
        foreach (var column in columns)
        {
            string value = item.GetType().GetProperty(column).GetValue(item).ToString();
            PdfPCell cell5 = new PdfPCell(new Phrase(value, rowfont));
            table.AddCell(cell5);
        } 
    }
    document.Add(table);
    document.Close();
}


это хорошее начало

ChrisKWHsu

Прости, Гарт.
тебе не нужно писать это для меня. Я просто прошу совета у экспертов.
Я очень ценю вашу готовность ответить на мои вопросы.
Извините за недоразумение.