【问题标题】:sort the column with rated attributes in datatables对数据表中具有评级属性的列进行排序
【发布时间】:2011-09-10 10:07:08
【问题描述】:

我必须对数据表中的额定数据列进行排序。评级数据包含 5 星评级(满分 5 分)。数据正常出现,但未排序。我在数据表中使用主题滚轮 css,数据表是使用以下代码创建的。

$('#data_table').dataTable( {
            "aaData": dataSet ,
            "bSort":true,
            "aaSorting": [[0,'desc'],[0,'asc'],[2,'asc'],[2,'desc']],
            "iDisplayLength": 4,            
            "bInfo": true,
            "bLengthChange": false,
            "bJQueryUI": true,
            "bPaginate": true,
            "bAutoWidth": false,
            "sPaginationType": "full_numbers",
            "bAutoWidth": true,
            "aoColumns": [
                {   "sTitle": "Seller",
                    "sWidth": "155px",
                    "sClass": "grey" ,
                    "fnRender": function(obj) {
                        var data = obj.aData[ obj.iDataColumn ];
                        return "<a href='"+ data.url +"'>"+ data.title +"</a>";
                    }

                },
                {
                    "sTitle": "Seller rating",
                    "sClass": "center grey",
                    "sWidth": "100px",
                    "fnRender": function(obj) {
                        var sReturn = obj.aData[ obj.iDataColumn ];
                        var val = obj.aData[ obj.iDataColumn ];
                        if ( sReturn != "N/A") {

                            $('#fixed').raty({
                                    readOnly:  true,
                                    start:     val
                                });

                            sReturn = $('#fixed').html();
                            $('#fixed').html("");
                        }
                        return sReturn;
                    }
                })

我想要卖家评分栏,它是使用星号作为图像的评分栏。根据它拥有的星号进行排序。

【问题讨论】:

    标签: jquery css datatables


    【解决方案1】:

    bUseRendered (columns)

    当对列使用 fnRender() 时,您可能希望使用原始数据(渲染前)进行排序和过滤...

    编辑

    "aaSorting": [[0,'desc']],
    "aoColumns": [
        { 
          "mDataProp": "timestamp",
          "fnRender": function ( oObj ) {
              return "do whatever you need...";
          }, 
          "bUseRendered": false
        },
        null
    ]
    

    【讨论】:

      【解决方案2】:

      我认为你应该改变部分:

      "aaSorting": [[0,'desc'],[0,'asc'],[2,'asc'],[2,'desc']],
      

      "aaSorting": [[1,'desc']],
      

      然后它将根据第二列的值对表格进行排序,如果您可以将数据集中的一些行提供给我们,那么如果我的答案中缺少某些内容,我们可以更好地回答您的问题。

      【讨论】:

      • 您可能还需要为列使用自定义排序插件来获得所需的排序。有点像这个:datatables.net/plug-ins/sorting#Priority.
      • 谢谢你....但我正在寻找图像排序。如果产品被评为 4 分(满分 5 分),则 4 星为金色,其他为灰色。所以这对这个不起作用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      • 2021-06-27
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多