我使用的是jquery插件.dataTables,无法正确排序。在阅读有关堆栈溢出的类似问题后,我仍然感到困惑,需要帮助!我发布下面的代码。任何帮助,将不胜感激。这是表格的html部分:
<thead>
<tr>
<th>Store Name</th>
<th>District Manager</th>
<th>Store ID</th>
<th>Payday</th>
<th>Title</th>
<th>Payday/Title Total</th>
</tr>
</thead>
<tbody>
<?php
foreach($bigQuery as $i => $row) {
$total = $row['mtd_payday'] + $row['mtd_title'];
echo "<tr>" . "<td>" . $row['store_name'] . "</td>";
echo "<td >" . $row['district_manager'] . "</td>";
echo "<td >" . $row['store_id'] . "</td>";
echo "<td data-sort=\"". $row['mtd_payday']. "\">" . money_format('%.2n', $row['mtd_payday']) . "</td>";
echo "<td data-sort=\"". $row['mtd_title']. "\">" . money_format('%.2n', $row['mtd_title']) . "</td>";
echo "<td data-sort=\"$total\">" . money_format('%.2n', $total) . "</td>" . "</tr>";
$total = "";
} ?>
</tbody>
我使用查询中的数据填充表。该表的javascript如下:
<script>
//initializes the dataTable plugin.
$(document).ready(function() {
var table = $('#balances').DataTable({
tableTools: {
"sSwfPath": "../copy_csv_xls_pdf.swf"
}
});
var tt = new $.fn.dataTable.TableTools( table );
$( tt.fnContainer() ).insertBefore('div.dataTables_wrapper'); });
</script>
我是一名新程序员,对.dataTables插件完全陌生。当我尝试使用表顶部的排序按钮时,它没有正确排序。
答案 0 :(得分:1)
数据表应默认排序。这让我相信你的html语法存在问题。
检查后,我发现<tr>
中的结尾<thead>
不正确。添加/
并将其设为</tr>
看到你的照片后,它正在对它进行排序并将列视为strings
。要更改列的数据类型以进行排序,您需要将sType
添加到列中。默认支持的类型是字符串,数字,日期和HTML。
代码应更改为:
var table = $('#balances').DataTable({
"aoColumns": [
null,
null,
null,
{ "sType": "numeric" },
{ "sType": "numeric" },
{ "sType": "numeric" }
],
tableTools: {
"sSwfPath": "../copy_csv_xls_pdf.swf"
}
});