如何将多个jquery dataTable放在一个页面中?

我想用jquery dataTables来展示一些东西。

当我只将一个dataTable放在一个页面中,然后我再添加一个,但它们占据了几乎相同的位置,其中一个不能正常工作时,它运行良好。

你知道怎么处理吗?

服务器端处理是可能的。 我让它在我的应用程序中的许多位置工作。 您只需要多次按照服务器端处理的示例代码进行操作……

 $(document).ready(function() { $('#example').dataTable( { "bProcessing": true, "bServerSide": true, "sAjaxSource": "../examples_support/server_processing.php" } ); } ); 

#example替换为#id-of-your-table"sAjaxSource": "../examples_support/server_processing.php"替换为"sAjaxSource": "url/to/your/server/side/script"

我的猜测是您使用了多个表示例中的.dataTable选择器。 这将使用dataTable类对所有表应用相同的设置。

我迟到了,但这里是我用来解决你描述的问题的方法……

 $('.testDataTable').each(function() { var dataSource = $(this).attr("data-ajaxsource"); "bProcessing": true, "bServerSide": true, "sAjaxSource": dataSource }); }); 

您实际上是在迭代DataTable实例并通过数据属性添加源集。 如果您不熟悉数据属性,那么它们只是应用于元素的标签……

 

或者 ,如果您不想使用HTML5数据属性,可以在父级中使用隐藏字段,该字段可以直接读入sAjaxSource …

 $('.testDataTable').each(function() { "bProcessing": true, "bServerSide": true, "sAjaxSource": $(this).children('childElement').html() }); }); 
 
$(document).ready(function() { $('table.display').dataTable(); } );

只要您给出正确的课程,就会显示所有三个表格

如果单个页面上有多个数据表 – 请检查是否使用了示例中的以下内容

 "fnServerData": fnDataTablesPipeline 

这会缓存第一次调用的数据; 如果第二个数据表使用相同的函数,它将看到已经获取了数据,并且没有进行ajax调用来检索其数据。 所以你不会收到第二个(第n个)数据表的数据。

仍在努力…但这可能会有所帮助

 

剧本

 // global the manage tables var manageMemberTable; //var tbl1 = $('#webdesignTable').DataTable( ); $(document).ready(function() { $('table.display').dataTable(); //focus here manageMemberTable = $("#webdesignTable").DataTable({ "ajax": "webdesign_action/retrieve.php", //get data for your tables "order": [] }); domainregistrationTable = $("#domainregistrationTable").DataTable({ "ajax": "domainregistration_action/retrieve.php", //get data for your tables "order": [] }); //It continues