Как удалить строку поиска и нижний колонтитул, добавленные плагином jQuery DataTables?

253

Я использую jQuery DataTables .

Я хочу удалить строку поиска и нижний колонтитул (показывающий количество видимых строк), который добавлен в таблицу по умолчанию. Я просто хочу использовать этот плагин для сортировки, в основном. Можно ли это сделать?

Лиора
источник
Вы можете эффективно использовать, sDomкак описано здесь - stackoverflow.com/a/53885264/5729813
Тушар Вальзаде

Ответы:

489

Для DataTables> = 1.10 используйте:

$('table').dataTable({searching: false, paging: false, info: false});

Для DataTables <1.10 используйте:

$('table').dataTable({bFilter: false, bInfo: false});

или используя чистый CSS:

.dataTables_filter, .dataTables_info { display: none; }
antpaw
источник
7
Как бы ни был хорош комментарий @antpaw, и, похоже, он работает в большинстве случаев, он не работает, если для каждого столбца происходит фильтрация, как в следующем примере: datatables.net/release-datatables/extras/FixedColumns/… . Будь в курсе!
Янис Пейсениекс,
@JanisPeisenieks Пример URL не работает: datatables.net/extensions/fixedcolumns
antpaw
7
Я не понимаю, почему это принято, так как это не отвечает на вопрос. Проблема заключалась в удалении строки поиска и нижнего колонтитула, не отключая поиск полностью.
user1563544
чтобы полностью удалить нижний колонтитул, вы должны установить, paging:falseа info:falseне толькоpaging:false
Майк D3ViD Тайсон
1
добавив к комментарию @ user1563544, есть ли способ просто скрыть панель поиска и НЕ отключить функцию? (кроме трюков CSS?)
vignz.pie
88

Проверьте http://www.datatables.net/examples/basic_init/filter_only.html для списка функций, чтобы показать / скрыть.

То, что вы хотите, это установить "bFilter" и "bInfo" в false;

$(document).ready(function() {
    $('#example').dataTable( {
        "bPaginate": false,
        "bFilter": false,
        "bInfo": false
                 } );
} );
Эрик
источник
@Eric спасибо, это работает для меня, но я хочу показать "bPaginate" только я не хочу показывать "binfo", как я могу реализовать, если я сделал "bInfo" = false и "bPaginate" = true, тогда оба показывают
Амит
В последней версии DataTables это просто{paging: false, info: false}
josemmo
42

Вы также не можете нарисовать верхний или нижний колонтитул, установив sDom: http://datatables.net/usage/options#sDom

'sDom': 't' 

будет отображаться просто таблица, без верхних и нижних колонтитулов или что-нибудь.

Некоторые обсуждаются здесь: http://www.datatables.net/forums/discussion/2722/how-to-hide-empty-header-and-footer/p1

Скотт Стаффорд
источник
2
Это должно быть добавлено к ответу antpaw. Это эффективно скрывает фильтры и div заполнителей информации, которые все еще остаются при передаче "bFilter": false, "bInfo": false.
tibc-dev 26.12.13
Это удаляет нумерацию страниц в нижнем колонтитуле. Я не думаю, что это хорошая практика.
Анирудх
1
Теперь он называется «DOM», и вы можете намного больше контролировать эту опцию. См. Datatables.net/reference/option/dom
unkreativ
1
Это на самом деле правильный ответ. Другие ответы, включающие трюки css и js - это все хаки. Если вы хотите использовать DataTables правильно, это то, как вы это делаете. Например, если вы хотите показать все биты и фрагменты (подкачка страниц, длина страницы и т. Д.), Кроме поля поиска, вы бы добавили domсвойство со значением ltiprsee datatables.net/reference/option/dom
onefootswill
26

Если вы используете пользовательский фильтр, вы можете скрыть окно поиска, но все же хотите включить функцию фильтра, так что bFilter: falseэто не так. Используйте dom: 'lrtp'вместо этого, по умолчанию 'lfrtip'. Документация: https://datatables.net/reference/option/dom

Сулейман Судирман
источник
10
var table = $("#datatable").DataTable({
   "paging": false,
   "ordering": false,
   "searching": false
});
Пьетро Ла Гротта
источник
7

Быстрый и грязный способ - найти класс нижнего колонтитула и скрыть его с помощью jQuery или CSS:

$(".dataTables_info").hide();
kgiannakakis
источник
4

Если вы используете themeroller:

.dataTables_wrapper .fg-toolbar { display: none; }
paja01
источник
+1 Спасибо, это указало мне в правильном направлении. Я не хотел скрывать заголовок, поэтому я просто хотел нижний колонтитул. Классы ui-corner-bl и ui-corner-br применяются только к нижнему колонтитулу, поэтому я использовал любой из них, чтобы получить оболочку нижнего колонтитула ........ $ (". ui-corner-bl"). hide ( );
Кевбо
4

Как сказал @Scott Stafford, sDOMэто наиболее подходящее свойство для отображения, скрытия или перемещения элементов, составляющих DataTables. Я думаю, что sDOMсейчас устарел, с фактическим патчем это свойство сейчас dom.

Это свойство позволяет также присвоить элементу некоторый класс или идентификатор, чтобы вам было проще.

Проверьте официальную документацию здесь: https://datatables.net/reference/option/dom

В этом примере будет показана только таблица:

$('#myTable').DataTable({
    "dom": 't'
});
Grirg
источник
4
<script>
$(document).ready(function() {
    $('#nametable').DataTable({
        "bPaginate": false,
        "bFilter": false,
        "bInfo": false
    });
});
</script>

в вашем конструкторе данных

https://datatables.net/forums/discussion/20006/how-to-remove-cross-icon-in-search-box

Гаурав Бхатра
источник
этот ответ не имеет никакой ссылки на какой-либо документ, и вы не предоставили рабочий ответ
elad silver
3

Здесь вы можете добавить sDomэлемент к вашему коду, верхняя строка поиска скрыта.

$(document).ready(function() {
    $('#example').dataTable( {
"sDom": '<"top">rt<"bottom"flp><"clear">'
 } );
} );
Venky
источник
3

Это можно сделать, просто изменив конфигурацию:

$('table').dataTable({
      paging: false, 
      info: false
 });

Но чтобы скрыть пустой колонтитул; этот кусок кода делает свое дело:

 $('table').dataTable({
      paging: false, 
      info: false,

      //add these config to remove empty header
      "bJQueryUI": true,
      "sDom": 'lfrtip'

});
Шаян Сулехри
источник
2

Просто напоминание, что вы не можете инициализировать один и DataTableтот же <table>элемент дважды.

Если вы столкнулись с той же проблемой, вы можете установить searchingи pagingfalse при инициализации DataTable в вашем HTML, <table>как это

 $('#tbl').DataTable({
    searching: false, 
    paging: false,
    dom: 'Bfrtip',
    buttons: [
       'copy', 'csv', 'excel', 'pdf', 'print'
    ]
 });
Хите саху
источник
1

Вы можете скрыть их через CSS:

#example_info, #example_filter{display: none}
graphicdivine
источник
Не «неправильно», просто другое. Это зависит от того, хотите ли вы скрыть все экземпляры (по классу, как в вашем ответе) или конкретный экземпляр (по идентификатору, как в моем).
graphicdivine
1

Вы можете использовать атрибут sDom. Код выглядит примерно так.

$(document).ready(function() {
    $('#example').dataTable( {
        'sDom': '"top"i'
                 } );
} );

Это скрывает окно поиска и пейджер.

Justget Meinside
источник
1

Начиная с DataTables 1.10.5, теперь можно определять параметры инициализации, используя атрибуты data5 * HTML5.

- документация по таблицам данных: атрибуты данных HTML5 - параметры таблицы

Таким образом, вы можете указать data-searching="false" data-paging="false" data-info="false"на table. Например, эта таблица не позволяет искать, применять пейджинг или показывать информационный блок:

<table id="example" class="display" width="100%" data-searching="false" data-paging="false" data-info="false">
    <thead>
        <tr>
            <th>Name</th>
            <th data-orderable="false">Avatar</th>
            <th>Start date</th>
            <th>Salary</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Tiger Nixon</td>
            <td><img src="https://www.gravatar.com/avatar/8edcff60cdcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/04/25</td>
            <td>$320,800</td>
        </tr>
        <tr>
            <td>Garrett Winters</td>
            <td><img src="https://www.gravatar.com/avatar/98fe9834dcca2ad650758fa524d4990?s=64&amp;d=identicon&amp;r=PG" alt="" style="width: 64px; height: 64px; visibility: visible;"></td>
            <td>2011/07/25</td>
            <td>$170,750</td>
        </tr>
        ...[ETC]...
    </tbody>
</table>

Смотрите рабочий пример на https://jsfiddle.net/jhfrench/17v94f2s/ .

Преимущество этого подхода заключается в том, что он позволяет использовать стандартный вызов dataTables (т. Е. $('table.apply_dataTables').DataTable()), В то же время имея возможность настраивать параметры dataTables по таблицам.

Джером Френч
источник
0

Я сделал это, назначив нижний колонтитул id, а затем стиль с помощью CSS:

    <table border="1" class="dataTable" id="dataTable_${dtoItem.key}" >
     <thead>
        <tr>
            <th></th>

        </tr>
    </thead>
 <tfoot>
    <tr>
            <th id="FooterHidden"></th>
    </tr>
</tfoot>
<tbody>

    <tr>

                <td class="copyableField"></td>

    </tr>
 </tbody>
</table>

затем стилизация с использованием CSS:

#FooterHidden{
   display: none;
}

Как указано выше, способы не работают для меня.

newProgramer
источник
0

Я думаю, что самый простой способ:

<th data-searchable="false">Column</th>

Вы можете редактировать только те таблицы, которые вам нужно изменить, без изменений обычного CSS или JS.

WalterV
источник
0

Если вы хотите скрыть форму поиска, например, потому что у вас есть фильтры ввода столбцов, или, возможно, потому что у вас уже есть форма поиска CMS, способная возвращать результаты из таблицы, тогда все, что вам нужно сделать, - это проверить форму и получить ее идентификатор - (на момент написания этого он выглядит так [tableid]-table_filter.dataTables_filter). Затем просто [tableid]-table_filter.dataTables_filter{display:none;}сохраните все другие функции таблиц данных.

Герберт Кимани
источник