I can post my controller code and view code, can you please change the code, I don't know threading concept.
public ActionResult RunReports(int? id)
{
DomainContext CurrentLoginUser = ActiveDirectory_AccessModel.GetUserDetails(); // Username
var userDetails = (from c in db.SP_GR_Get_Userdetails(CurrentLoginUser.DisplayName)
select c.user_roles).FirstOrDefault();
if (userDetails == null)
{
return RedirectToAction("NoAccess");
}
var runResult = (from c in db.tbl_GR_Reports
where c.Report_ID == id
select c).SingleOrDefault();
DataSet ds = new DataSet();
DataTable dt = new DataTable();
if (runResult != null)
{
Microsoft.Practices.EnterpriseLibrary.Data.Database salesworldDbConn = new SqlDatabase(runResult.Db_Connection);
DbCommand cmd = salesworldDbConn.GetSqlStringCommand(runResult.Query);
try
{
ds = salesworldDbConn.ExecuteDataSet(cmd);
}
finally
{
cmd.Dispose();
salesworldDbConn = null;
}
if (ds != null && ds.Tables.Count > 0)
{
dt = ds.Tables[0];
}
}
return View(dt);
}
View Code: @model System.Data.DataTable
@{
ViewBag.Title = "RunReport";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script>
$(document).ready(function () {
$("#export").click(function (e) {
var grid = $("#grid").data("kendoGrid");
grid.saveAsExcel();
e.preventDefault();
});
});
</script>
<form id="frmRunReport">
<table style="border: 1px solid black;" width="900" align="center">
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td style="font-weight:bold;color:#004b8d; padding-left:20px; font-size:x-large"></td>
</tr>
<tr id="ManageUsers_grid">
<td colspan="2">
<div>
@(Html.Kendo().Grid(Model)
.Name("grid")
.Scrollable()
.Columns(columns =>
{
columns.AutoGenerate(column =>
{
column.Width = "100px";
});
//columns.AutoGenerate(true);
})
.HtmlAttributes(new { style = "width: 900px;" })
//.Scrollable()
.Groupable()
.Filterable()
.Sortable(sortable => sortable.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn))
//.Pageable(pageable => pageable
// .PageSizes(true)
// )
.Resizable(resize => resize.Columns(true))
.DataSource(dataSource => dataSource
.Ajax()
//.PageSize(20)
.ServerOperation(false)
)
)
</div>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:central">
<div class="form-footer">
<button id="export" class="form-button">Export to Excel</button>
</div>
</td>
</tr>
</table>
</form>