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