Как сделать сортировку по умолчанию для столбца с данными при использовании window.dtDefaultOptions - PullRequest
1 голос
/ 05 апреля 2019

Я ищу способ предварительной сортировки таблицы по дате по убыванию в столбце даты.Я просмотрел документацию datatables по сортировке, но не нашел работоспособного решения при использовании window.dtDefaultOptions.Казалось, что window.dtDefaultOptions.order = [[3, "desc"]] должен быть способ сделать это, но это не сработало для меня.

Я также пробовал window.dtDefaultOptions.columnDefs = [{orderable: true, targets: 3}], но это тоже не решило проблему.

Это мой код в моем index.blade:

$(document).ready(function () {
    window.dtDefaultOptions.ajax = '{!! route(' admin.feedback.index ') !!}';
    window.dtDefaultOptions.stateSave = true;
    //window.dtDefaultOptions.scrollY = '50vh';
    window.dtDefaultOptions.scrollCollapse = true;

    window.dtDefaultOptions.order = [[3, "desc"]];

    window.dtDefaultOptions.columns = [{
            data: 'user.name',
            name: 'user.name'
        }, {
            data: 'type',
            name: 'type'
        }, {
            data: 'comment',
            name: 'feedback.comment'
        }, {
            data: 'date',
            name: 'created_at'
        }, {
            data: 'actions',
            name: 'actions',
            searchable: false,
            sortable: false
        }
    ];
    window.dtDefaultOptions.buttons = [];
    processAjaxTables();
});        

1 Ответ

0 голосов
/ 07 апреля 2019

Я нашел способ упорядочить столбец по убыванию при рендеринге.

window.dtDefaultOptions = {
            columnDefs: [],
            "order": [3,'desc'],
        };

Проблема в том, что для того, чтобы заставить его работать, мне нужно удалить или закомментировать строки кода saveState и scrollCollapes.

    $(document).ready(function () {
        window.dtDefaultOptions.ajax = '{!! route('admin.feedback.index') !!}';
        window.dtDefaultOptions = {
            columnDefs: [],
            "order": [3,'desc'],
        };
        //window.dtDefaultOptions.stateSave = true;
        //window.dtDefaultOptions.scrollY = '50vh';
        //window.dtDefaultOptions.scrollCollapse = true;
        window.dtDefaultOptions.columns = [{
             data: 'user.name', 
             name: 'user.name'
         }, {
             data: 'type', 
             name: 'type'
         }, {
             data: 'comment', 
             name: 'feedback.comment'
         }, {
             data: 'date', 
             name: 'created_at'
         }, {
             data: 'actions', 
             name: 'actions', searchable: false, sortable: false
         }
      ];
        window.dtDefaultOptions.buttons = [];
        processAjaxTables();
    });

Итак, у нас есть ответ, который работает на поставленный вопрос, но нарушает другие аспекты кода. В этом случае я могу жить с этим, поскольку порядок столбцов более важен, чем stateSave и scrollCollapse для этой конкретной таблицы. Но если кто-нибудь знает, как добиться порядка столбцов наряду с stateSave и scrollCollapse, мне было бы интересно узнать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...