Jquery jtable排序不起作用



我使用jquery jtable。但是我的排序不起作用。我想基于myPoolName列排序。我添加了排序:true。但这行不通。请帮助。

代码如下:

  j('#infoTableId').jtable({
        paging : true, //Enable paging
        pageSize : 10, //Set page size (default: 10)   
        cache: false,
        sorting:true,
        actions : {
             listAction: '${baseURL}/myListPaginationDataTablesAjaxCall.html'
        },
   recordsLoaded: function(event, data) {
        buildPendCodesDropDown();
     },
         fields: {     
                MyId : {
                            title : 'My Id',
                            width : '15%',
                            key : true,
                            list : true,
                            edit : false,
                            create : false
                        },
                myPoolName : {
                            title : 'My Pool',
                            width : '20%',  
                            list : true,
                            edit : false,
                            sorting:true,
                            create : false,
                            display:function(data){
                               return data.record.myPool.myPoolName;
                            }
                        }
                 }
   });
  j('#infoTableId').jtable('load');

如果没有代码,我所能猜到的就是jTable字段名与数据库列名不同。

有很多可能性。在您的示例中,由于使用显示函数来显示数据,如果将name列声明为数据库列

就足够了

如果此字段依赖于其他表的连接,则应添加'tableName。columnName',带引号。

我将其用于Spring,并且漂亮的解决方案应该调用存储数据(并在表中显示)的表单变量与数据库中的列表相同。

如果你选择了最后一个选项,你就不需要使用显示功能了。

编辑:再次阅读后,我有一个问题。表是否在第一个请求中显示任何记录?如果答案是No(并且显示错误消息),在表声明中,在排序:true之后放置变量defaultSorting: 'columnName'

兄弟,你只需要在列表页面的查询中添加这个。

if($_GET["jtSorting"]!=null &&$_GET["jtSorting"]!="")
{
$query_s =$query_s. " ORDER BY ".$_GET["jtSorting"]." ";
}

在WHERE子句之后,在LIMIT条件之前使用。希望这能起作用,此外,"MyId"one_answers"myPoolName"必须与数据库中的字段名称匹配。头衔并不重要。