我使用dataTables在一个页面上有几个表。每个都需要有自己的“sAjaxSource”。我似乎想不出该怎么做。下面是我所拥有的最小代码:
var oTable = $('.datatable').dataTable( {
"bProcessing": true,
"sAjaxSource": "/ajax/function",
"bSort": false,
"fnDrawCallback": function() {
//some click events initilized here
}
});
这基本上是最基本的设置。每个表都作为datatable类和一个唯一的ID。但是不确定如何根据特定的表更改AjaxSource。
谢谢!
编辑:
这就是我最终要做的:
$('.datatable').each(function(index){
$('#'+$(this).attr('id')).dataTable( {
"bProcessing": true,
"sAjaxSource": $(this).children('caption').html(),
"bSort": false,
"fnDrawCallback": function() {
}
});
});
在该表中,我放置了一个标题标记,该标记被css隐藏,并包含Ajax Source URL。它遍历每个实例并获取url。
到目前为止,这似乎是有效的!
发布于 2011-10-19 21:00:52
这不会行得通吗?它使用id而不是类来唯一地标识每个数据表,并根据id将一个单独的源附加到每个表。
var oTable = $('#FirstDataTableID').dataTable( {
"bProcessing": true,
"sAjaxSource": "/ajax/function",
"bSort": false,
"fnDrawCallback": function() {
//some click events initilized here
}
});
var oTable = $('#SecondDataTableID').dataTable( {
"bProcessing": true,
"sAjaxSource": "/ajax/other_function",
"bSort": false,
"fnDrawCallback": function() {
//some click events initilized here
}
});
发布于 2011-11-10 17:02:48
我也遇到了同样的问题,我使用一个与您的类似的html5数据属性和初始化代码解决了这个问题:
$('.dataTableServer').each(function () {
var source = $(this).attr("data-source");
$(this).dataTable({
"sPaginationType": "full_numbers",
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": source
});
});
这样您就不必为每个dataTable创建一个id
发布于 2011-10-19 21:01:21
您需要精准地选择每个表,并对其应用适当的Ajax数据源,以便获得所需的内容。现在,您正在根据类名进行选择:
$(".dataTable")
可能需要转换为:
$("#dataTable1")
我猜如果你有很多表,这将会变得单调乏味,但这几乎是你能做你想要做的事情的唯一方法。
https://stackoverflow.com/questions/7827986
复制相似问题