2014-10-20 4 views
2
компоненте

таблицы в CDE Pentaho основан на datables, я хотел бы реализовать эту функциональность в моих таблицах https://datatables.net/examples/api/multi_filter.htmlпоиска Индивидуального столбца в Pentaho CDE BI сервер

$(document).ready(function() { 
    // Setup - add a text input to each footer cell 
    $('#example tfoot th').each(function() { 
     var title = $('#example thead th').eq($(this).index()).text(); 
     $(this).html('<input type="text" placeholder="Search '+title+'" />'); 
    }); 

    // DataTable 
    var table = $('#example').DataTable(); 

    // Apply the search 
    table.columns().eq(0).each(function (colIdx) { 
     $('input', table.column(colIdx).footer()).on('keyup change', function() { 
      table 
       .column(colIdx) 
       .search(this.value) 
       .draw(); 
     }); 
    }); 
}); 

Я не могу заставить его работать, я получил ошибку обрабатывая компонентное сообщение, я попытался включить его как js-фрагмент, как внешний источник, в post fetch и в функции пост-выполнения, я думал, что отсутствие индексов для каждого столбца вызывает проблему, я включил индексы в выходные параметры, также не работает

Я также нашел эту альтернативу http://jsfiddle.net/CmMfJ/2/#collaborate

var table = $('#example').DataTable(); 

$("#example tfoot th").each(function (i) { 
    var select = $('<select><option value="">All</option></select>') 
    .appendTo($(this).empty()) 
    .on('change', function() { 
     var term = $(this).val()!=='' ? '^'+$(this).val()+'$' : ''; 
     table.column(i) 
      .search(term, true, false) 
      .draw(); 
     }); 

    table.column(i).data().unique().sort().each(function (d, j) { 
    select.append('<option value="'+d+'">'+d+'</option>') 
    }); 
}); 

я не получаю никаких ошибок с этим кодом, но он не работает, таблица не меняется, в обоих случаях в пост функции исполнения я сделал это: функция() {код}, Я также изменил переменную #example для имени моей таблицы, ничего не получилось, любая помощь была бы действительно оценена, спасибо.

+0

У меня возникла эта проблема. Вы когда-нибудь выяснили ответ? –

+0

@SeanBranchaw Извините Шейн, я этого не сделал: / – shaggun

ответ

0

Ваш подход postExecution может быть правильным, но вы не можете создать новый DataTable над этим div. Он уже создан.

Если вы проверяете этот объект во время выполнения postExecution, одно из полей (не может помнить, что) дает вам доступ к вашему объекту DataTable (таблица var на вашем примере).