尝试显示300,000条记录时出现MaximumJsonLength属性错误

时间:2020-02-18 09:42:49

标签: jquery asp.net ajax datatables

我有一个jQuery Datatable实例来显示数据库中的许多记录。我使用AJAX提取数据。

我已经在web.config中将maxJsonLength属性设置为2147483644,但这仅允许应用程序获取10,000条记录。如果尝试了更多尝试,则会收到错误消息:

字符串的长度超过了在maxJsonLength属性上设置的值

我该怎么办?是否有其他选择可以在数据表中显示300,000条记录?

[WebMethod]
public void GetStudents()
{
  var gd = new List<GeneralDetails>();
  VisaSetUpBAL bl = new VisaSetUpBAL();
  SqlDataReader dr;
  dr = bl.returnTableReader("vwVisaApplnV3", "top 10000 *", "1=1");
  while (dr.Read())
  {
    var student = new GeneralDetails
    {
      ApplicationID = Convert.ToInt32(dr["ApplicationID"]),
      RefNo = Convert.ToString(dr["RefNo"]),
      AppliedDate = Convert.ToString(dr["AppliedDate"]),
      VisaType = Convert.ToInt32(dr["VisaType"]),
      ServiceType = Convert.ToInt32(dr["ServiceType"]),
      LocationID = Convert.ToInt32(dr["LocationID"]),
      Surname = Convert.ToString(dr["Surname"]),
      VisaNo = Convert.ToString(dr["VisaNo"]),
      ServiceName = Convert.ToString(dr["ServiceType"]),
    };
    gd.Add(student);
  }
  var js = new JavaScriptSerializer();
  Context.Response.Write(js.Serialize(gd));
}
$(document).ready(function() {
  $.ajax({
    type: "POST",
    dataType: "json",
    url: "webservice.asmx/GetStudents",
    success: function(data) {
      var datatableVariable = $('#example').DataTable({
        data: data,
        serverSide: true,
        ordering: false,
        searching: false,
         columns: [  
           { 'data': 'ApplicationID' },  
           { 'data': 'RefNo' },  
           { 'data': 'AppliedDate' }, 
           { 'data': 'VisaType' },  
           { 'data': 'ServiceType' },  
           { 'data': 'LocationID' },  
           { 'data': 'Surname' }, 
           { 'data': 'VisaNo' }, 
           { 'data': 'ServiceName' }
         ]  
      });

      $('#example tfoot th').each(function() {
        var placeHolderTitle = $('#example thead th').eq($(this).index()).text();
        $(this).html('<input type="text" class="form-control input input-sm" placeholder = "Search ' + placeHolderTitle + '" />');
      });
    }
  });
});

0 个答案:

没有答案