Laravel 8 Yajra DataTable在同一页面刷新

beg*_*ner 0 laravel yajra-datatable

如何刷新当前页码的DataTable而不返回第一页?此代码刷新表格,但继续转到第一页或分页的第一个链接。

$('#table_users').DataTable().ajax.reload();
Run Code Online (Sandbox Code Playgroud)

这就是表的初始化方式。

        $(document).ready(function() {
            // init datatable.
            var dataTable = $('#table_users').DataTable({
                processing: true,
                serverSide: true,
                autoWidth: false,
                pageLength: 10,
                // scrollX: true,
                "order": [[ 0, "desc" ]],
                ajax: {
                    url: '{{ route('get_users') }}'
                },
                columns: [
                    {data: 'name', name: 'name'},
                    {data: 'email', name: 'email'},
                    {data: 'sex', name: 'sex'},
                    {data: 'bday', name: 'bday'},
                    {data: 'contact', name: 'contact'},
                    {data: 'scope', name: 'scope'},
                    {data: 'roles', name: 'roles'},
                    {data: 'permissions', name: 'permissions'},
                ]
            });
        });
Run Code Online (Sandbox Code Playgroud)

控制器。

    $user = User::select('id', 'name', 'email', 'sex', 'bday', 'contact', 'scope', 'scope_id')->get();
    return \DataTables::of($user)->make()
Run Code Online (Sandbox Code Playgroud)

小智 6

用这个替换数据表重新加载,

dataTable.ajax.reload(null, false)
Run Code Online (Sandbox Code Playgroud)

其中dataTable创建的数据表的实例,并将第一个参数设置为 null (回调),第二个参数用于重置分页,因此将其设置为false

让我知道它是否能解决您的问题。

参考