Фиксированная колонка с данными, застрявшая при использовании нескольких таблиц данных - PullRequest
0 голосов
/ 03 мая 2019

У меня есть 9 таблиц данных на одной странице, и я использую вкладки начальной загрузки, чтобы отделить их.Есть несколько вкладок, которые используют одну и ту же таблицу данных только потому, что она изменяет содержимое в зависимости от того, на какой вкладке нажимают (Это было сделано для того, чтобы подражать нашей предыдущей практике с использованием электронной таблицы Google, один пример состоит в том, что на разных листах есть одинаковые столбцы, но с разными данными, т.е.разные ветки).

Я использовал фиксированный столбец с данными во всех данных, поэтому я очень полагаюсь на него.Проблема возникает, когда я меняю вкладку несколько раз, чтобы фиксированный столбец застрял, однако данные и выравнивание верны, но когда я нажимаю кнопку сортировки над фиксированным столбцом, данные, находящиеся позади, будут фактически отсортированы, но данные фиксированного столбца не будут следовать, яподтвердил это, когда я удалил фиксированный столбец, используя элемент проверкиТакже, когда я ищу что-то, чего не существует в таблице, одна строка фиксированного столбца с одними данными блокирует результат «Не найдено подходящих записей».Также каждый раз, когда я щелкаю по вкладке, она обновляет данные для нее.


var columns_students = [
        {data: 'name', name: 'name'},
        {data: 'contact', name: 'contact'},
        {data: 'program.name', name: 'program'},
        {data: 'school.name', name: 'school'},
        {data: 'benefactor.name', name: 'benefactor'},
        {data: 'gender', name: 'gender'},
        {data: 'age', name: 'age'},
        {data: 'course.name', name: 'course'},
        {data: 'email', name: 'email'},
        {data: 'date_of_signup', name: 'date_of_signup'},
        {data: 'referral.fname', name: 'referral'},
        {data: 'remarks', name: 'remarks'},
        {data: "action", orderable:false,searchable:false}
    ]

var columnDefs_students = [
    { width: 220, targets: 0 }, //name
    { width: 90, targets: 1 }, //contact
    { width: 130, targets: 2 }, //program
    { width: 130, targets: 3 }, //school
    { width: 130, targets: 4 }, //benefactor
    { width: 60, targets: 5 }, //gender
    { width: 45, targets: 6 }, //age
    { width: 200, targets: 7 }, //course
    { width: 200, targets: 8 }, //email
    { width: 120, targets: 9 }, //signup
    { width: 120, targets: 10 }, //referral
    { width: 250, targets: 11 }, //remarks
    { width: 150, targets: 12 }, //action
    {defaultContent: "", targets: "_all"}
]


function refresh_student_branch(){
        departure_year = $('#year_select').val();
        departure_month = $('#month_select').val();

        students_branch = $('#students_branch').DataTable({
            stateSave: true,
            stateSaveCallback: function(settings,data) {
                localStorage.setItem( 'DataTables_' + settings.sInstance, JSON.stringify(data) )
            },
            stateLoadCallback: function(settings) {
                return JSON.parse( localStorage.getItem( 'DataTables_' + settings.sInstance ) )
            },
            stateLoadParams: function( settings, data ) {
                if (data.order) delete data.order;
            },
            processing: true,
            destroy: true,
            scrollX: true,
            scrollCollapse: true,
            fixedColumns: true,
            ajax: {
                url: '/student_branch',
                data: {
                    current_branch: current_branch,
                    departure_year: departure_year,
                    departure_month: departure_month
                }
            },
            columnDefs: columnDefs_students,
            columns: columns_students,
            order: [[3,'asc']]
        });

    }


$('.branch_pick').on('click', function(){
    current_branch = $(this).text();

    showMonthSelect();
    refresh_student_branch();
});

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

Я думаю, что это может быть из-за того, как я повторно инициализирую данные, особенно для этого множества.Все остальные функции гладкие, кроме этой, и это самое главное.

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