Ошибка свойства MaximumJsonLength при попытке отобразить 300 000 записей - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть экземпляр jQuery Datatable для отображения большого количества записей из моей БД. Я получаю данные, используя AJAX.

Я уже установил для свойства maxJsonLength значение 2147483644 в web.config, но это позволяет приложению получать только 10 000 записей. Если я попробую больше, то получу ошибку:

Длина строки превышает значение, установленное в свойстве maxJsonLength

Что мне делать? Есть ли альтернатива для отображения 300 000 записей в Datatable?

[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 + '" />');
      });
    }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...