【发布时间】:2014-07-24 03:33:49
【问题描述】:
所以,这是我对 DataTables 表对象的 AJAX 调用。我正在尝试让 JSON 填充仅包含行的表,因为它已经具有标题行。
我不清楚 DataTables ajax 调用的语法是什么,因为它们从一个版本到另一个版本不同。
$('#MainContentPlaceHolder_business_return_flights').dataTable({
"ajax": {
"url": "Browse.aspx/GetBusinessFlights",
"type": "POST",
"contentType": "application/json; charset=utf-8",
"dataType": "json"
}
});
我不断收到错误消息:Uncaught TypeError: Cannot read property 'length' of undefined
这是返回的 JSON:
{
"d":{
"draw":"1",
"recordsTotal":"70",
"recordsFiltered":"70",
"aData":[
[
"BI 098",
"London (LHR)",
"Dubai",
"08-08-2014",
"12:55 PM",
"11:55 PM",
"Royal Brunei",
"1",
"0",
"1300",
"\u003cbutton type=\"button\" href=\"javascript:void(0)\" onclick=\"selectFlight($(this))\" data-toggle=\"oflight\" class=\"btn btn-block btn-info\"\u003eBook\u003c/button\u003e"
],
[
"CY 383",
"Dubai",
"Larnaca",
"08-06-2014",
"1:45 PM",
"4:05 PM",
"Cyprus Airways",
"1",
"0",
"1100",
"\u003cbutton type=\"button\" href=\"javascript:void(0)\" onclick=\"selectFlight($(this))\" data-toggle=\"oflight\" class=\"btn btn-block btn-info\"\u003eBook\u003c/button\u003e"
]
]
}
}
更新:这是我的退货方法:
[WebMethod]
public static Dictionary<string, object> GetBusinessFlights()
{
listRows = new List<List<string>>();
business = new Table();
economy = new Table();
FillTable(economy, business, scheduledFlights.List);
foreach (TableRow row in business.Rows)
{
listRow = new List<string>();
foreach (TableCell cell in row.Cells)
{
listRow.Add(cell.Text);
}
listRows.Add(listRow);
}
field = new Dictionary<string, object>() { { "draw", "1" }, { "recordsTotal", economy.Rows.Count.ToString() }, { "recordsFiltered", economy.Rows.Count.ToString() }, { "aData", listRows } };
return field;
}
注意:FillTable()只将数据填入业务和经济表对象中。
【问题讨论】:
-
给我清楚。如果您想填写为什么不能只使用 GET 。我猜你没有正常返回。你能在你的控制器中发布返回码吗? mvc 使用权。
-
GET 方法的好主意。忘了这一切。谢谢。
标签: c# ajax json jquery-datatables