asp.net mvc - Kendo grid export to pdf -


i'm relatively new mvc , kendo library. in project need way export data kendo grid( http://demos.kendoui.com/web/grid/index.html ) pdf.

i found pretty example on how in entity framework used pass data grid. here example: http://www.kendoui.com/code-library/mvc/grid/export-grid-to-pdf.aspx .

in project used nhibernate mapp data , later pass model in view.

unfortunately don't understand code in example , cant figure out how change code .

example:

controller:

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 template kick-start asp.net mvc application.";              return view();         }          public actionresult read([datasourcerequest] datasourcerequest request)         {            // datasourcerequest = request;             return json(db.products.todatasourceresult(request));          }          public fileresult export([datasourcerequest]datasourcerequest request)         {             ienumerable products = db.products.todatasourceresult(request).data;              // step 1: creation of document-object             var document = new document(pagesize.a4, 10, 10, 10, 10);              //step 2: create memory stream listens document             var output = new memorystream();             pdfwriter.getinstance(document, output);              //step 3: open document             document.open();              //step 4: add content 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 document             document.add(datatable);              //this important don't forget close document             document.close();              // send memory stream file             return file(output.toarray(), "application/pdf", "products.pdf");          }       } } 

view:

@{     viewbag.title = "home page"; } @model ienumerable<kendomvcwrappers.models.product>  @(  html.kendo().grid(model).name("grid")                 .datasource(ds => ds.ajax()                                 .model(m =>                                 {                                     m.id(p=>p.productid);                                                               })                        .read(r => r.action("read", "home"))                 )                 .toolbar(toolbar =>                      toolbar.custom()                         .text("export pdf")                         .htmlattributes(new { id = "export" })                         .url(url.action("export", "home", new { page = 1, pagesize = "~", filter = "~", sort = "~" }))                 )                 .columns(columns =>                 {                     columns.bound(p => p.productid);                     columns.bound(p => p.productname);                     columns.bound(p => p.unitprice).format("{0:c}");                     columns.bound(p => p.quantityperunit);                 })                 .events(ev => ev.databound("ondatabound"))                 .pageable(paging => paging        .input(false)        .numeric(true)        .info(true)        .previousnext(true)        .pagesizes(new int[]{6, 12, 100 })         .refresh(true)        )     .sortable()      .scrollable(scr=>scr.height(330))      .filterable()         .resizable(resize => resize.columns(true)) )  <script type="text/javascript">     function ondatabound(e) {         var grid = $('#grid').data('kendogrid');          // ask parametermap create request object         var requestobject = (new kendo.data.transports["aspnetmvc-server"]({ prefix: "" }))         .options.parametermap({             page: grid.datasource.page(),             sort: grid.datasource.sort(),             filter: grid.datasource.filter()         });          // export link jquery object         var $exportlink = $('#export');          // 'href' attribute - url navigate         var href = $exportlink.attr('href');          // update 'page' parameter grid's current page         href = href.replace(/page=([^&]*)/, 'page=' + requestobject.page || '~');          // update 'sort' parameter grid's current sort descriptor         href = href.replace(/sort=([^&]*)/, 'sort=' + requestobject.sort || '~');          // update 'pagesize' parameter grid's current pagesize         href = href.replace(/pagesize=([^&]*)/, 'pagesize=' + grid.datasource._pagesize);          //update filter descriptor filters applied          href = href.replace(/filter=([^&]*)/, 'filter=' + (requestobject.filter || '~'));          // update 'href' attribute         $exportlink.attr('href', href);     } </script> 

if understand correctly read function used pass data products database grid. datasource request object created javascript ?

how can alter code if dont have database model products ?

in project use repository data need ilist. how can use example above similar to:

ienumerable products = db.products.todatasourceresult(request).data; 

in code below?

repo:

public class czaspracymaszynrepository {

public ilist<czaspracymaszyn> getczaspracymaszyn() {     using (isession session = nhibernatehelper.opensession())     {          var mylist = session.query<czaspracymaszyn>();           return mylist.tolist();     } } 

}

model:

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; }      } 

controller:

public class tabelecontroller : controller {

czaspracymaszynrepository _repositoryczaspracymaszyn;   public tabelecontroller() {     _repositoryczaspracymaszyn = new czaspracymaszynrepository();  }   public actionresult czaspracymaszyntabela() {     ilist<czaspracymaszyn> czaspracymaszyn = _repositoryczaspracymaszyn.getczaspracymaszyn();     return view(czaspracymaszyn); } 

}

i know of pretty vague did best describe problem.


Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -