2016-05-12 43 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

謝謝,這是擺脫了那個錯誤,現在我有另一個工作 –