- Home
- Forum
- ASP.NET MVC - EJ 2
- Excel and PDF export from grid doesn't work properly with templated columns
Excel and PDF export from grid doesn't work properly with templated columns
Hello
It seems that the export to Excel or Pdf from the grid doesn't work when there's a templated column.
For example, I have a viewmodel object Address
public class Address
{
public string City { get; set; }
public string Street { get; set; }
}
{
public string City { get; set; }
public string Street { get; set; }
}
and the grid column defined like this:
col.Field("Address").Template("${Address.City}, ${Address.Street}").Add();
It is displayed fine in the grid, but when I try to export to Excel it doesn't work at all, and export to Pdf shows [object Object] in the Address field:
Sample controller and views are attached
Attachment: Test_9c2e9851.zip
SIGN IN To post a reply.
7 Replies
VA
Venkatesh Ayothi Raman
Syncfusion Team
December 6, 2018 01:00 PM UTC
Hi Tomislav,
Thanks for using Syncfusion products.
Currently Essential JS 2 Grid don’t have support for template exporting and we have already logged this “Provide support for template exporting” as feature request list. This implementation will be included in any of upcoming release.
Regards,
Venkatesh Ayothiraman.
Venkatesh Ayothiraman.
TT
Tomislav Tustonic
December 6, 2018 01:21 PM UTC
Hello
This is bad.
When do you expect this feature released?
Tom
This is bad.
When do you expect this feature released?
Tom
MF
Mohammed Farook J
Syncfusion Team
December 10, 2018 11:55 AM UTC
Hi Tomislav,
We have already considered “Provide support for template exporting” as a feature list. This feature list is like the below requirements.
- Need to provide excel support for hyperlink template column.
- If you render component as column template , than it display element html string .
For example:
If you render button as a column template, then it display like a html element string. That is “<button id=’button’>Click Button</button>”.
If these requirement lists are different from your requirement , then please provide details about your column template.
Regards,
J Mohammed Farook
TT
Tomislav Tustonic
December 10, 2018 12:02 PM UTC
Hello
My requirement is like the one in my first post, for example the Address object, with template "${Address.City}, ${Address.Street}" it should render City, Street both in Excel column and in Pdf. I don't need hyperlinks and buttons in the exported data.
Thanks, Tom
VA
Venkatesh Ayothi Raman
Syncfusion Team
December 11, 2018 11:46 AM UTC
Hi Tomislav,
Thanks for the update.
As we said before, we have already logged this “Provide support for template exporting” as feature request list. This implementation will be included in any of upcoming release. Until use the following workaround for your requirement. Here, we have achieved your requirement by using ExcelQueryCellInfo and PdfQueryCellInfo events of the grid. Please find the below code example and sample for your reference.
[code example]
|
@{
ViewBag.Title = "Grid Sample";
}
<div>
@Html.EJS().Grid("Grid").DataSource((IEnumerable<object>)ViewBag.dataSource).AllowPdfExport().PdfQueryCellInfo("PdfQueryCellInfo").
ExcelQueryCellInfo("ExcelQueryCellInfo").AllowExcelExport().ToolbarClick("toolbarClick").Columns(col =>
{
...
col.HeaderText("TemplateColumn").Width("150").Template("#template").Add();
}).AllowPaging().PageSettings(page => page.PageSize(8)).EditSettings(edit => { edit.AllowAdding(true).AllowEditing(true).AllowDeleting(true)
.Mode(Syncfusion.EJ2.Grids.EditMode.Normal); }).Toolbar(new List<string>() { "Add", "Edit", "Delete", "Update", "Cancel", "ExcelExport", "PdfExport" }).Render()
</div>
<script id="template" type="text/template">
<div>
${ShipCountry}, ${ShipCity}
</div>
</script>
<script>
function toolbarClick(args) {
var gridObj = document.getElementById("Grid").ej2_instances[0];
if (args.item.id === 'Grid_excelexport') {
gridObj.excelExport();
} else if (args.item.id === 'Grid_pdfexport') {
gridObj.pdfExport();
}
}
function ExcelQueryCellInfo(args) {
if (args.value.length === 0) {
args.value = args.data.ShipCountry + ", " + args.data.ShipCity;
}
}
function PdfQueryCellInfo(args) {
if (args.value.length === 0) {
args.value = args.data.ShipCountry + ", " + args.data.ShipCity;
}
}
</script> |
Please find the sample in below link.
Sample link: http://www.syncfusion.com/downloads/support/directtrac/general/ze/gridmvclocalizationExportSample1772191539
Please get back to us if you need further assistance.
Regards,
Venkatesh Ayothiraman.
TT
Tomislav Tustonic
December 18, 2018 02:07 PM UTC
Thanks
Will the templates like the one I described work in the future releases, or it will always be necessary to fix output using JavaScript like in your reply?
Tom
MF
Mohammed Farook J
Syncfusion Team
December 19, 2018 11:01 AM UTC
Hi Tom,
After provided support for “template exporting” , you didn’t include any additional codes for exporting template column When you render the column template from Grid field value only, otherwise if you have render any custom elements in your column template we must be used ExcelQueryCellInfo /PdfQueryCellInfo event for exporting template column.
Regards,
J Mohammed Farook
SIGN IN To post a reply.
- 7 Replies
- 3 Participants
-
TT Tomislav Tustonic
- Dec 5, 2018 03:23 PM UTC
- Dec 19, 2018 11:01 AM UTC