排序时保持一行的位置

时间:2013-03-27 02:46:42

标签: jquery datatables

在我的表(JQuery Datatables)中,有一行(最后一行)总是必须在末尾(它是总数)。

我可以区分它的价值,因为它们就像:

<td><span class="last-row">MY VALUE</span></td>

无论排序是哪一列,无论排序是ASC还是DESC,我怎样才能使排序功能始终将这种行放在最后?

2 个答案:

答案 0 :(得分:3)

只是为了充实SiGanteng建议的内容,您可以使用元素tfoot来定义表格中的页脚行。

<table>
    <thead>
      <tr> 
      <!-- modern browsers know how to render these, it is also used by screen readers and other assistive technologies -->
        <td>header 1</td>
        <td>header 2</td>
        <td>header 3</td>
      </tr>
    </thead>
    <tfoot> <!--ditto-->
      <tr>
        <td colspan="3">footer text</td>
      </tr>
    </tfoot>
    <tbody>
      <!-- regular html rows & cols here -->
    </tbody>
</table>

答案 1 :(得分:0)

如果它必须是td元素,那么你将不得不创建一个自定义函数排序插件 http://www.datatables.net/plug-ins/sorting

下面是一个排序插件的示例,它始终将空字段放在底部,您可以通过调整来调整以在列中查找您的特殊值,无论其类型是什么类型。为你的val,并在aoColums stype中指定它

jQuery.fn.dataTableExt.oSort['mystring-asc'] = function(x,y) {
var retVal;
x = $.trim(x);
y = $.trim(y);

if (x==y) retVal= 0;
else if (x == "" || x == "&nbsp;") retVal=  1;
else if (y == "" || y == "&nbsp;") retVal=  -1;
else if (x > y) retVal=  1;
else retVal = -1;  // <- this was missing in version 1

return retVal;
 }
jQuery.fn.dataTableExt.oSort['mystring-desc'] = function(y,x) {
var retVal;
x = $.trim(x);
y = $.trim(y);

if (x==y) retVal= 0; 
else if (x == "" || x == "&nbsp;") retVal=  -1;
else if (y == "" || y == "&nbsp;") retVal=  1;
else if (x > y) retVal=  1;
else retVal = -1; // <- this was missing in version 1

return retVal;

 }

datatable()函数中的赋值

 ...
 "aoColumns": [
  { "sType": 'mystring' },
 ...