Error on creating Dynamically Datatable columns and data
Error on creating Dynamically Datatable columns and data

Referred this link - http://live.datatables.net/qimukefe/1/edit
Error - invalid JSON primitive: draw at Deserialize Primitive Object()
Description - We have different reports - selecting a report name and submitting it - I am getting Data -column names and data
Please advice
Code
var columnsss =[];
ObjData["Facility_ID"] = $('#Facility_ID').val();
ObjData["Report_Type_Name"] = $("#Report_Type option:selected").text();
ObjData["IsGetReport"] = true;
var dataProp = { model: ObjData };
$.ajax({
type: "POST",
url: '../GenericReport/_AjaxGenericReport',
data: JSON.stringify(dataProp),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
if (condition) {
$('#DivtableData').show();
var data = eval(result.data);
for (var i in data[0][0]) {
columnsss.push({
data: i,
title: capitalizeFirstLetter(i)
});
}
$('#btnSubmit').prop('disabled', false);
$('.table').DataTable({
processing: true,
serverSide: true,
ajax: {
url: '../GenericReport/_AjaxGenericReport',
type: 'POST',
contentType: "application/json; charset=utf-8"
},
columnDefs: [],
columns: columnsss,
'rowCallback': function (row, data, dataIndex) {
}
});
};
});
function capitalizeFirstLetter(string) {
return string.toString().charAt(0).toUpperCase() + string.slice(1) ;
}
this is controller side
[HttpPost]
public JsonResult _AjaxGenericReport(GenericReportViewModel model)
{
try
{
model.USER_NAME = UserData.username.Trim();
model = _genericReportService.GenericReportSVC(model);
string JSONString = string.Empty;
JSONString = JsonConvert.SerializeObject(model.Data);
return Json(
new
{
data = JSONString
}, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
//return Json(new { Success = false, Message = ex.Message },JsonRequestBehavior.AllowGet);
}
}
Edited by Allan - Syntax highlighting. Details on how to highlight code using markdown can be found in this guide.
This discussion has been closed.
Answers
How many rows do you have in the table? To you need server-side processing enabled? If so, you would need to fully implement the client / server communication that DataTables requires in your server-side code.
Allan
Thank you for the response. In current implementation I am building the table on server side with the data.
For few reports - data is not much thats not the issue but for few reports it's timing out even we use date filters
Fair enough - if it is taking too long to response with all records, then server-side processing probably is the way to go (typically we say 10'000 or more records is when you should start thinking about server-side processing).
Allan