Asp.net mvc 剑道网格导出为pdf

Asp.net mvc 剑道网格导出为pdf,asp.net-mvc,kendo-ui,kendo-grid,Asp.net Mvc,Kendo Ui,Kendo Grid,我是mvc和剑道库的新手。在我的项目中,我需要一种将数据从剑道网格()导出到PDF的方法 实际上,我发现了一个很好的例子,说明了如何做到这一点,但在it中,实体框架用于将数据传递到网格。以下是示例: 在我的项目中,我使用NHibernate映射数据,然后将其传递给视图中的模型 不幸的是,我不完全理解示例中的代码,也不知道如何更改代码 例如: 控制器: using System; using System.Collections.Generic; using System.Linq; using

我是mvc和剑道库的新手。在我的项目中,我需要一种将数据从剑道网格()导出到PDF的方法

实际上,我发现了一个很好的例子,说明了如何做到这一点,但在it中,实体框架用于将数据传递到网格。以下是示例:

在我的项目中,我使用NHibernate映射数据,然后将其传递给视图中的模型

不幸的是,我不完全理解示例中的代码,也不知道如何更改代码

例如:

控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Kendo.Mvc.UI;
using KendoMVCWrappers.Models;
using Kendo.Mvc.Extensions;
using System.Collections;
using System.IO;
using System.Text;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace KendoMVCWrappers.Controllers
{
    public class HomeController : Controller
    {
        private NwEntities db = new NwEntities();

        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to kick-start your ASP.NET MVC application.";

            return View();
        }

        public ActionResult Read([DataSourceRequest] DataSourceRequest request)
        {
           // DataSourceRequest i = request;
            return Json(db.Products.ToDataSourceResult(request)); 
        }

        public FileResult Export([DataSourceRequest]DataSourceRequest request)
        {
            IEnumerable products = db.Products.ToDataSourceResult(request).Data;

            // step 1: creation of a document-object
            var document = new Document(PageSize.A4, 10, 10, 10, 10);

            //step 2: we create a memory stream that listens to the document
            var output = new MemoryStream();
            PdfWriter.GetInstance(document, output);

            //step 3: we open the document
            document.Open();

            //step 4: we add content to the document
            var numOfColumns = 4;
            var dataTable = new PdfPTable(numOfColumns);

            dataTable.DefaultCell.Padding = 3;

            dataTable.DefaultCell.BorderWidth = 2;
            dataTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;

            // Adding headers
            dataTable.AddCell("Product ID");
            dataTable.AddCell("Product Name");
            dataTable.AddCell("Unit Price");
            dataTable.AddCell("Quantity Per Unit");

            dataTable.HeaderRows = 1;
            dataTable.DefaultCell.BorderWidth = 1;

            foreach (Product prod in products)
            {
                dataTable.AddCell(prod.ProductID.ToString());
                dataTable.AddCell(prod.ProductName);
                dataTable.AddCell(prod.UnitPrice.ToString());
                dataTable.AddCell(prod.QuantityPerUnit);
            }

            // Add table to the document
            document.Add(dataTable);

            //This is important don't forget to close the document
            document.Close();

            // send the memory stream as File
            return File(output.ToArray(), "application/pdf", "Products.pdf");

        }


    }
}
视图:

在我下面的代码中

回购:

公共类CzapracymaszynRepository {

控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Kendo.Mvc.UI;
using KendoMVCWrappers.Models;
using Kendo.Mvc.Extensions;
using System.Collections;
using System.IO;
using System.Text;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace KendoMVCWrappers.Controllers
{
    public class HomeController : Controller
    {
        private NwEntities db = new NwEntities();

        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to kick-start your ASP.NET MVC application.";

            return View();
        }

        public ActionResult Read([DataSourceRequest] DataSourceRequest request)
        {
           // DataSourceRequest i = request;
            return Json(db.Products.ToDataSourceResult(request)); 
        }

        public FileResult Export([DataSourceRequest]DataSourceRequest request)
        {
            IEnumerable products = db.Products.ToDataSourceResult(request).Data;

            // step 1: creation of a document-object
            var document = new Document(PageSize.A4, 10, 10, 10, 10);

            //step 2: we create a memory stream that listens to the document
            var output = new MemoryStream();
            PdfWriter.GetInstance(document, output);

            //step 3: we open the document
            document.Open();

            //step 4: we add content to the document
            var numOfColumns = 4;
            var dataTable = new PdfPTable(numOfColumns);

            dataTable.DefaultCell.Padding = 3;

            dataTable.DefaultCell.BorderWidth = 2;
            dataTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;

            // Adding headers
            dataTable.AddCell("Product ID");
            dataTable.AddCell("Product Name");
            dataTable.AddCell("Unit Price");
            dataTable.AddCell("Quantity Per Unit");

            dataTable.HeaderRows = 1;
            dataTable.DefaultCell.BorderWidth = 1;

            foreach (Product prod in products)
            {
                dataTable.AddCell(prod.ProductID.ToString());
                dataTable.AddCell(prod.ProductName);
                dataTable.AddCell(prod.UnitPrice.ToString());
                dataTable.AddCell(prod.QuantityPerUnit);
            }

            // Add table to the document
            document.Add(dataTable);

            //This is important don't forget to close the document
            document.Close();

            // send the memory stream as File
            return File(output.ToArray(), "application/pdf", "Products.pdf");

        }


    }
}
公共类选项卡控制器:控制器 {

czapracymaszynrepository\u repositoryczapracymaszyn;
公共选项卡控制器()
{
_repositoryCzapracymaszyn=新CzapracymaszynRepository();
}
公共行动结果Czapracymaszyntabela()
{
IList Czapracymaszyn=_repositoryCzapracymaszyn.getCzapracymaszyn();
返回视图(Czapracymaszyn);
}
}

我知道这一切都很模糊,但我尽力描述我的问题

IEnumerable products = db.Products.ToDataSourceResult(request).Data;
public IList<CzasPracyMaszyn> GetCzasPracyMaszyn()
{
    using (ISession session = NHibernateHelper.OpenSession())
    {

        var myList = session.Query<CzasPracyMaszyn>();


        return myList.ToList();
    }
}
public class CzasPracyMaszyn
    {
        public virtual int ID { get; set; }
        public virtual string STANOWISKO { get; set; }
        public virtual int CZASPRACY { get; set; }
        public virtual int CZASAWARII { get; set; }
        public virtual int AWARIAFORMY { get; set; }
        public virtual int AWARIAROBOTA { get; set; }
        public virtual int AWARIAWTRYSKARKI { get; set; }
        public virtual int MOKRYSUROWIEC { get; set; }
        public virtual int PUSTE { get; set; }

    }
CzasPracyMaszynRepository _repositoryCzasPracyMaszyn;


public TabeleController()
{
    _repositoryCzasPracyMaszyn = new CzasPracyMaszynRepository();

}


public ActionResult CzasPracyMaszynTabela()
{
    IList<CzasPracyMaszyn> CzasPracyMaszyn = _repositoryCzasPracyMaszyn.GetCzasPracyMaszyn();
    return View(CzasPracyMaszyn);
}