2017-02-15 3 views
0

Я пытался отправить данные в таблицы данных jquery, но я не мог. У меня есть веб-метод на стороне сервера, который возвращает данные как массив объектов. Мне нужно получить данные с помощью ajax-сообщения. Но я не могу. Так что мне нужна помощь.Таблицы данных JQuery Не удается опубликовать данные с помощью Ajax (asp.Net)

Вот мой C# веб-метод:

[WebMethod] 
    public static object[] Questions() 
    { 
     table = new DataTable(); 
     List<object> questionList = new List<object>(); 
     table = RunSelectCommand("SELECT QUESTION_ID,QUESTION_TEXT,QUESTION_GROUP FROM QUESTIONS WHERE QUESTION_ACTIVE='Y'"); 
     for(int i=0 ; i<table.Rows.Count ; i++) 
     { 
      questionList.Add(new 
      { 
       q_id = table.Rows[i]["QUESTION_ID"].ToString(), 
       q_text = table.Rows[i]["QUESTION_TEXT"].ToString(), 
       q_group = table.Rows[i]["QUESTION_GROUP"].ToString() 
      }); 
     } 

     return questionList.ToArray(); 
    } 

И JQuery:

$(document).ready(function() { 
     $('#questTable').DataTable({ 
      processing: true, 
      serverSide:true, 
      ajax: { 
       url: 'Question.aspx/Questions', 
       type:'POST' 
      }, 
      columns: [ 
       { data: 'q_id' }, 
       { data: 'q_text' }, 
       { data: 'q_group' } 
      ] 
     }); 
    }); 

Но я debuged его с точкой излома, и я заметил, что веб-метод не работает. И вот ошибка, которую я получаю: Предупреждение DataTables: таблица id = questTable - неверный ответ JSON. Для получения дополнительной информации об этой ошибке, пожалуйста, см. http://datatables.net/tn/1

Заранее спасибо.

+0

Посмотрите на [документацию на стороне сервера] (https://datatables.net/manual/server-side), в частности раздел «Возвращенные данные». – markpsmith

+0

Я решил проблему, спасибо :) –

ответ

0

Проблема решена. Речь шла о том, что мой веб-метод возвращает массив объектов, а таблицы данных его не принимают. Вот почему я получил Недействительный ответ JSON. ошибка. Поэтому я меняю структуру js. Я отправляю данные как обычно, тогда я использую таблицы данных данные свойство для сообщения. Он работает:

function GetData() 
    { 
     $.ajax({ 
      type: 'POST', 
      dataType: 'json', 
      contentType: 'application/json', 
      url: 'Question.aspx/Questions', 
      data: '{}', 
      success: function (result) { 
       $('#questTable').DataTable({ 
        data:result.d, 
        columns: [ 
         { data: 'q_id' }, 
         { data: 'q_text' }, 
         { data: 'q_group' } 
        ] 
       });} 
    } 
Смежные вопросы