新手求助,datatables grid 加载数据问题

不爱写代码 2014-11-27 05:25:18
自学datatables ,代码如下

$(document).ready(function () {
var listData = "";
$.ajaxSetup({
async:false
});
$.ajax({
type:"post", //请求方式
url:"ajaxList.action",
dataType:"json",
async:false,
success:function (result) {
listData = eval('(' + result + ')');
}
});
alert(listData.data[0].name)
alert("111111111=" + listData)
$('#example').dataTable({
"ajax":listData,
"bInfo":true, //开关,是否显示表格的一些信息
"bJQueryUI":true,
"language":{
"lengthMenu":"每页显示 _MENU_ 条记录",
"zeroRecords":"Nothing found - sorry",
"info":"当前显示第 _PAGE_ / _PAGES_页,总数目: _MAX_",
"infoEmpty":"No records available",
"infoFiltered":"(filtered from _MAX_ total records)"
},
"columns":[
{ "data":"name" },
{ "data":"position" },
{ "data":"office" },
{ "data":"extn" },
{ "data":"start_date" },
{ "data":"salary" }
]
});
//必须重新获取对象
var table = $('#example').DataTable();
// Apply the search
// $('#example tbody').on( 'click', 'tr', function () {
// $(this).toggleClass('selected');
// } ); 多选
//选中某一行并获得对应的值
$('#example tbody').on('mousedown', 'tr', function () {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
}
else {
table.$('tr.selected').removeClass('selected');
$(this).addClass('selected');
}
});

$('#button').click(function () {
alert(table.rows('.selected').data()[0].name);
});
var imageMenuData = [
[
{
text:"编辑",
func:function () {
}
}
] ,
[
{
text:"删除",
func:function () {

}
}
],
[
{
text:"失效",
func:function () {

}
}
],
[
{
text:"生效",
func:function () {

}
}
]
];
$("#example tbody").smartMenu(imageMenuData, null, "70px");

});

ajax传回来的字符串是这样的
{"data":[{"office":"ffffffffffff","position":"dddddddd","name":"xxxxxx","salary":null,"extn":"ccccccccccc","start_date":null},{"office":"aaaaaaa","position":"casca","name":"cascascsac","salary":null,"extn":"ssssssss","start_date":null}]}
这个字符串与api demo中objects.txt格式是一样的,我直接使用 $('#example').dataTable({ "ajax":"objects.txt" ,这样就没问题,
但是使用后台传回来的字符串转换的json就会报错


求各位指点一下,多谢
...全文
363 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿罗一 2015-01-29
  • 打赏
  • 举报
回复
$('#example').dataTable({ ... "ajax":"ajaxList.action", // 这里直接填写获取json的url ...
钱野人 2015-01-27
  • 打赏
  • 举报
回复
楼主,咋解决的啊~~~我也出现了这个问题,急死我了。
不爱写代码 2014-11-28
  • 打赏
  • 举报
回复
Go 旅城通票 2014-11-28
  • 打赏
  • 举报
回复
ajax配置可以为字符串(数据源地址),object对象(调用jquery的ajax发送请求时的配置)和function

你已经自己通过ajax获取到数据了,是本地数据源,应该使用data配置加载本地数据,而且你指定了jquery的ajaxdataType为json对象了,不需要再eval


$.ajax({
type:"post", //请求方式
url:"ajaxList.action",
dataType:"json",
async:false,
success:function (result) {
listData =result
}
});
$('#example').dataTable({
"data":listData.data,

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧