2016-05-12 41 views
0

我想优化超过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“}”

我将不胜感激,如果有人可以帮助我了解我要去的地方错误的和我需要做的,以解决这个问题。

感谢

+0

我不知道如何解决,但突出的位是_“错误信息中的_”字符串的长度超过maxJsonLength属性中设置的值_“;似乎你的5000条记录正在被抛出一边。对不起,如果这没有太大的帮助 - 只是认为它可能会给你一个指针从哪里去这里 –

回答

1

你的问题是与SerializeObject,你必须maxJsonLength设置为一个很大的数字,以满足您的案件。看到这个答案here

+0

谢谢,这是摆脱了那个错误,现在我有另一个工作 –