根据第一列

时间:2016-01-18 23:22:17

标签: datatables

我使用jquery数据表,并且我为数据表的初始化分配了一个值数组。该表基本上看起来像这样。 enter image description here

基于单选按钮,我想限制表格中显示的项目和表格中搜索的项目。 对于我的例子,它将基于" Chart列"。我想限制表格只显示基于图表的项目" D"或图表" S"。以下是我如何初始化表格。

if (!$.fn.DataTable.isDataTable( '#fundLookUptbl' ) ) {
                 fundTable =  $('#fundLookUptbl').DataTable( {
                    data: funds,
                    columns: [
                        { "mData": "chart" },
                        { "mData": "fund"  },
                        { "mData": "orgDefault" },
                        { "mData": "progDefault" }
                    ]
                 } );
                 var filteredData = fundTable
                     .columns( [0, 1] )
                     .data()
                     .eq( 0 )
                     .filter( function ( value, index ) {
                         return value = 'D' ? true : false;
                     } );

            }

这显然不起作用,而filterData变量是试图使其工作的糟糕尝试。我很难理解API。所以问题是,如何初始化表只显示基于给定图表的项目。我知道我可以删除阵列中的项目,但我不想这样做,因为我很想简单地在图表之间切换" D"和" S"但仍然继续搜索其他列。

3 个答案:

答案 0 :(得分:1)

我相信filtering专栏会解决您的问题。

table.column(0).search('Bruno').draw()

因此,您可以在单选按钮选择更改时过滤列

这是一个fiddle示例

答案 1 :(得分:1)

我不确定要理解你想做什么,但这里有一些选择:

一种方法是默认选择值“s”。您可以使用下拉列表更容易处理。然后使用jQuery选择该下拉列表中的dafault值“s”并添加一个函数

 $("#DropdownId").change(function () {
       var chart=$("#DropdownId").val();
    });
 $.ajax({
            url: "url")",//url to reload page with new value
            type: "POST",
        data: {chart:chart},
        success: function (data) {           
        }
        });

    });

这样过滤器就在后端。如果您想根据列值在行上执行某些操作,请添加类似

的内容
"fnRowCallback": function (nRow, mData, iDisplayIndex, iDisplayIndexFull) {

                 if (mData["chart"] =="s") {
                  return nRow;
                    }
                },

Datatables: custom function inside of fnRowCallback

祝你好运

答案 2 :(得分:0)

 fundTable.order( [0, 'asc'] );

尝试或查看此特定页面以供参考:

https://datatables.net/reference/api/order%28%29 基本上是在asc(结束)或desc(结束)顺序中的columnIndex对中的订单。