我想優化超過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條記錄正在被拋出一邊。對不起,如果這沒有太大的幫助 - 只是認爲它可能會給你一個指針從哪裏去這裏 –