datatables.net ajax error - http://datatables.net/tn/7
datatables.net ajax error - http://datatables.net/tn/7
我正试图遵循一个示例,使用基于此示例的JSON响应将数据添加到datatables.net数据表https://www.datatables.net/examples/ajax/objects.html.
我正在使用AJAX调用从数据库中获取JSON响应。
我正在获取数据,然后根据下面的代码使用NewtonSoft JSON.Net将数据表转换为JSON数组
string jsonResult = null;
jsonResult = Newtonsoft.Json.JsonConvert.SerializeObject(dt);
jsonResult = jsonResult.Replace("[{", "{'"data'" :[{").Replace("}]", "}]}");
return jsonResult;
根据下一个代码片段,这是从一个单独的javascript文件中的AJAX调用中成功调用的
$.ajax({
type: "POST",
url: "TeamChecks.aspx/GetDataTables",
data: JSON.stringify(params),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log(data.d);
populateTable(data.d, tableId);
},
error: function (data) {
console.log(data);
}
}
然后将返回的值传递给一个函数,该函数应根据下一组代码将数据相应地格式化并输入数据表
function populateTable(json, tableId) {
try {
var table = $('#table_' + tableId).DataTable({
"processing": true,
"serverSide": true,
"ajax": json,
"columns:": [
{ "data": "CaseHandlerStaffNumber" },
{ "data": "RiskProfileText" },
{ "data": "AssignedCheckerStaffNumber" },
{ "data": "FeedbackUserStaffNumber" },
{ "data": "ComplaintRef" },
{ "data": "ChildComplaintRef" },
{ "data": "CaseTypeText" },
{ "data": "CheckGrade" }
]
});
} catch (e) {
}
}
我遇到的问题类似于这里的这个问题jquery datatables Ajax错误/http://datatables.net/tn/7然而,我已经尝试过这个用户解决方案,并遇到了同样的问题。
我已经遵循了这里详细介绍的所有建议步骤https://www.datatables.net/manual/tech-notes/7但不要认为与此相关的回复有任何错误。
如果有人能帮助我,我将不胜感激,因为我目前看不到解决这个问题的方法
感谢
Simon
基本上,当您有一个ajax调用来获取数据,然后将ajax添加到数据表定义中时,您就是在与自己作对。
建立web方法;请注意,当您这样做时,数据会被序列化两次,一次由您序列化,另一次由脚本服务模块序列化。
[WebMethod]
public string getTheData(String params){
SomeDataClass dt = getthedata();
return Newtonsoft.Json.JsonConvert.SerializeObject(dt);
}
现在是ajax:
$(document).ready(function(){
$.ajax({
type: "POST",
url: "TeamChecks.aspx/GetDataTables",
data: JSON.stringify(params),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
// jquery did the first deserialization
// here is where the second deserization happens.
var data = JSON.parse(reponse.d);
populateTable(data, tableId);
},
error: function (data) {
console.log(data);
}
}
});
然后你的功能
function populateTable(json, tableId) {
var table = $('#table_' + tableId).DataTable({
// in this layout DataTables is expecting a straight array of objects or array of arrays depending on how you are sending the data back
"data": json,
"columns:": [
{ "data": "CaseHandlerStaffNumber" },
{ "data": "RiskProfileText" },
{ "data": "AssignedCheckerStaffNumber" },
{ "data": "FeedbackUserStaffNumber" },
{ "data": "ComplaintRef" },
{ "data": "ChildComplaintRef" },
{ "data": "CaseTypeText" },
{ "data": "CheckGrade" }
]
});
}
相关文章:
- 借助asp.net验证或java脚本对多个文本进行验证
- java.net和javascript之间正则表达式的差异
- 如何通过引用var Using DataTables来进行分页或排序
- 将Javascript数组发送到控制器ASP.NET MVC
- ASP.NET通过单击JavaScript按钮触发c#事件
- 将数据从javascript文件导入VB.Net页面
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- datatables.net ajax error - http://datatables.net/tn/7
- 创建一个类似datatables.net的表示例,其中包含parent/child和+/-响应按钮
- 使用分页时如何从 DataTables.net 获取所有数据行
- DataTables.net 表列总和(以页脚为单位)
- 如何使用 DataTables.net 解决将表破坏容器外的长列值问题
- Datatables.net ajax 重新加载加载消息
- datatables.net 向搜索标签添加类
- jQuery的Google.load()-dos'无法使用DataTables.net
- 在MVC应用程序中使用DataTables.NET ajax调用访问WebAPI 2 json
- jQuery Datatables.net-刷新表-获取空的sAjaxSource
- 在datatables.net上调用fnGetPosition抛出“;无法调用方法'到UpperCase'
- Javascript:DataTables.net,延迟加载取代分页
- DataTables行重新排序(ASP.Net MVC)期间发生JavaScript运行时错误