2017-02-15 142 views
0

我一直在试图发布数据到jquery数据表,但我不能。我有一个在服务器端的Web方法,它返回数据作为对象数组。我需要使用ajax文章获取数据。但我不能。所以我需要一些帮助。jquery数据表不能发布数据与Ajax(asp.Net)

这里是我的C#Web方法:

[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它,我注意到,Web方法不起作用。这里是我得到的错误:DataTables警告:表id = questTable - 无效的JSON响应。有关此错误的更多信息,请参阅http://datatables.net/tn/1

在此先感谢。

+0

看看[服务器端文档](https://datatables.net/manual/server-side),特别是'Returned data'部分。 – markpsmith

+0

我解决了这个问题,谢谢:) –

回答

0

问题解决。这是关于我的web方法返回对象数组和数据表不接受它。这就是为什么我得到了无效的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' } 
        ] 
       });} 
    }