|
<script id="tabGridContents" type="text/x-jsrender">
...
<b class='detail'>EmployeeID</b> -
<br />
<br />
<b class='detail'>OrderID</b> -
<br />
</script>
<ej-grid id="FlatGrid" datasource="ViewBag.datasource" allow-paging="true" export-to-excel-action="/Home/ExportToExcel"
export-to-pdf-action="/Home/ExportToPdf"
export-to-word-action="/Home/ExportToWord" details-template="#tabGridContents">
...
<e-columns>
...
</e-columns>
</ej-grid>
public ActionResult ExportToExcel(string GridModel)
{
ExcelExport exp = new ExcelExport();
...
GridExcelExport exp2 = new GridExcelExport() { IncludeDetailRow = true, Theme = "flat-saffron", FileName = "Export.xlsx" };
obj.ExcelDetailTemplateInfo = templateInfo;
return exp.Export(obj, DataSource, exp2);
}
private GridProperties ConvertGridObject(string gridProperty)
{
...
}
public void templateInfo(object currentCell, object row)
{
IRange range = (IRange)currentCell;
object templates;
foreach (var data in row.GetType().GetProperties())
{
if (range.Value.Contains(data.Name)) //This will trigger when the range.value contains the field name which is in the detail grid(from the dataSource)
{
...
var charsToRemove = new string[] { "{", "}", "<b>", ":", "</b>", "<br />", "style", "=", "class", "</div>", "<p>", "</p>", "detail", "<b", ">", };
foreach (var c in charsToRemove)
{
range.Value = range.Value.ToString().Replace(c, string.Empty);
}
...
} |