| @{ ViewBag.Title = "Home Page"; } <div> @(Html.EJ().Grid<object> ("grid") .Datasource((IEnumerable<object> )ViewBag.datasource) .AllowPaging() .ClientSideEvents(eve => eve.DataBound("databound").BeforePrint("beforeprint").TemplateRefresh("template")) -------------------------------- .Columns(col => { col.HeaderText("Barcode").Template("#columnTemplate").TextAlign(TextAlign.Center).Width(110).Add(); --------------------------------- }) ) </div> <script type="text/x-jsrender" id="columnTemplate"> <div id="{{:OrderID}}barcode" class="barcode"></div> </script> <script type="text/javascript"> function databound(args) { var len1 = this.model.dataSource.length; for (var j = 0; j < len1; j++) { var num = this.model.dataSource[j].OrderID; this.element.find(".barcode").ejBarcode({ text: num.toString(), symbologyType: "qrbarcode" }); } } function beforeprint(args) { if (args.requestType == "print") { var img = new Image(); var len = $(".barcode").children("canvas").length; this.model.allowPaging = false; var obj = $("#grid").data("ejGrid"); obj.refreshContent(); obj.getPager().css('display', 'none'); for (var i = 0; i < len; i++) { img = new Image(); img.src = $(".barcode").children("canvas")[i].toDataURL(); args.element.find(".barcode").eq(i).parent("td").append(img); } this.model.allowPaging = true; obj.refreshContent(); obj.getPager().css('display', 'block'); } } function template(args) { if (!this.initialRender) { var num1 = args.data.OrderID; $(args.cell).find(".barcode").ejBarcode({ text: num1.toString(), symbologyType: "qrbarcode" }); } } </script> |