我一直试图将数据发布到jquery数据表,但我无法做到。我在服务器端有一个web方法,它返回数据作为对象数组。我需要用ajax帖子获取数据。但我不能。所以我需要一些帮助。
这是我的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' }
]
});
});
但我用断点对其进行了调整,我注意到网络方法无法正常工作。以下是我得到的错误: DataTables警告:table id = questTable - 无效的JSON响应。有关此错误的详细信息,请参阅http://datatables.net/tn/1
提前致谢。
答案 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' }
]
});}
}