我想优化超过5000行数据被返回的页面的负载。Datatables.Net没有采取JSON响应
而不是让后面的ASP.Net Webforms代码生成HTML我试图用JQuery实现这一点。
请参阅下面的代码。
$.ajax({
type: "POST",
url: "TeamChecks.aspx/GetDataTables",
data: JSON.stringify(params),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//console.log(data.d);
var table = $('#hidJson_tbl_2').DataTable({
"ajax": data.d,
"columns:": [
{ "data": "CaseHandlerStaffNumber" },
{ "data": "RiskProfileText" },
{ "data": "AssignedCheckerStaffNumber" },
{ "data": "FeedbackUserStaffNumber" },
{ "data": "ComplaintRef" },
{ "data": "ChildComplaintRef" },
{ "data": "CaseTypeText" },
{ "data": "CheckGrade" }
]
});
},
error: function (data) {
console.log(data);
}
}
这就要求使用NewtonSoft Json.Net
TeamChecks tc = new TeamChecks();
DataTable dtMc = default(DataTable);
dtMc = tc.Get_DatatableFor_GridView(userId, CheckStatusId);
string jsonResult = null;
jsonResult = Newtonsoft.Json.JsonConvert.SerializeObject(dtMc);
jsonResult = jsonResult.Replace("[{", "{data:[{").Replace("}]", "}]}");
return jsonResult;
我松散以下,因为我需要从后面的代码,而不是一个文本文件中的值可以在这里https://datatables.net/reference/option/ajax
中发现的实例方法,我得到的错误消息是
“{”消息“:”错误本身期间使用JSON JavaScriptSerializer进行并置或反序列化。在System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj,StringBuilder输出,SerializationFormat序列化格式)\ r \ n上的字符串长度超过了maxJsonLength属性设置的值。“,”StackTrace“:” Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj,SerializationFormat serializationFormat)\ r \ n在System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext上下文,WebServiceMethodData methodData,IDictionary`2 rawParams)\ r \ n在System .Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext的背景下,WebServiceMethodData methodData) “ ”ExceptionType“: ”System.InvalidOperationException“}”
我将不胜感激,如果有人可以帮助我了解我要去的地方错误的和我需要做的,以解决这个问题。
感谢
我不知道如何解决,但突出的位是_“错误信息中的_”字符串的长度超过maxJsonLength属性中设置的值_“;似乎你的5000条记录正在被抛出一边。对不起,如果这没有太大的帮助 - 只是认为它可能会给你一个指针从哪里去这里 –