Табулятор: используйте подтверждение, чтобы проверить, является ли ячейка редактируемой - PullRequest
0 голосов
/ 04 апреля 2020

Я использую Tabulator v 4.4.3 и пытаюсь использовать сообщение подтверждения в редактируемой проверке ячейки. Однако это не позволяет мне редактировать независимо от возвращаемого значения.

        {title:"lblNoRms", field:"noRooms", align:"center",editor:"number",
            editable:function(cell){
                let row = cell.getRow();
                let ids = row._row.data.ids;
                if (ids !== []){
                    return  confirm("do you want to edit ?")
                }else{
                    return true
                }
            },
        },

1 Ответ

1 голос
/ 10 апреля 2020

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

В этом случае вы должны установить editable до false, а затем используйте обратный вызов cellClick , чтобы вызвать подтверждение. Если пользователь подтвердит, вы можете вызвать функцию edit для Cell Component , чтобы вызвать редактирование

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

{title:"lblNoRms", field:"noRooms", editor:"number",
        editable:false,
        cellClick:function(cell){
            let ids = cell.getData().ids;

            if (cell.getData().ids !== []){
                if(confirm("do you want to edit ?")){
                    cell.edit(true);  //force cell edit
                }
            }else{
                cell.edit(true);  //force cell edit
            }
        },
    },
...