过滤并将数据绑定到Datatable

时间:2017-06-30 13:32:18

标签: javascript jquery datatables

我正在使用Jquery Data-table并将Large unsorted对象数据绑定到datatable。我的代码如下:

 var ExpenceDataTableElement = $('#ExpenceDataTable').DataTable({
 data: Data,
 pageLength: 10,
 "bSort": false,
 "autoWidth": false,
 columns: [{
      "className":"clsAction",
      "data": "TimesheetUID",
      "title": "Action",
      "render": (data, type, row) => '<input class="checkbox" type="checkbox" />',
      "width": "4%",
      "visible":true
 },
 {
      "className":"clsPeriodName",
      "data": "PeriodName",
      "title": "Timesheet Name",
      "visible":true
 },
 { 
      "className":"clsTSPeriodStatus",
      "data": "Open",
      "title": "Timesheet Period <br> Status",
      "render":function(data,type,row){ if(data == 1){return " Open"}else{return " close"}},
      "width": "10%",
      "visible":true
 }
 ],
 "oLanguage": {
      "sEmptyTable": "No Records found."
 }
 });

该数据包含超过15,000条记录,其中包含“&#39; Open&#39;或者关闭&#39;。目前我正在使用for循环对数据进行排序并将其绑定到数据表。意味着如果数据有1.5万条记录,并且它包含7千个“开放”数据。标志记录,排序和排序需要很长时间。将数据绑定到Datatable。因此,有没有办法检查列中的条件:&#39;如果标志不是“打开”#39;然后继续下一次迭代??

1 个答案:

答案 0 :(得分:0)

您可以使用filter方法首先过滤数组中“open”状态的对象。

someObject.columns.filter(x => x.data == 'open')

这将仅过滤掉标记为“打开”的那些。您可以将其缓存到变量中以进行进一步的工作。