Попытка получить данные ячейки + выбрать опцию из ячейки с помощью TABULATOR - PullRequest
0 голосов
/ 27 июня 2019

Я использую Tabulator, кстати, замечательный инструмент, но у меня проблемы.Я хочу поместить HTML Select во все строки, с опцией для каждой записи.Когда я изменяю опцию выбора, я вызываю функцию и получаю данные ячейки (с cell.getData()).Но как мне получить значение опции выбора?

Это то, что я пытаюсь сделать

Что у меня есть:

var selectHTML = function() {
    return '<select class="custom-select" id="select1" name="select1"><option value="0">Select</option><option value="1">Option 1</option><option value="2">Option 2</option></select>';};

var table = new Tabulator("#example-table", {
langs: {
    "es-es": {
        "pagination": {
            "first":"Primer página",
            "first_title":"Primer página",
            "last":"Última página",
            "last_title":"Última página",
            "prev":"Anterior",
            "prev_title":"Anterior",
            "next":"Siguiente",
            "next_title":"Siguiente",
            "page_size":"Resultados a mostrar"
        },
        "ajax":{
            "loading":"Cargando",
            "error":"Error"
        },
    },
},
height:"500",
layout:"fitColumns",
placeholder:"Sin datos",
responsiveLayout:true,
pagination:"local",
paginationSize:10,
paginationSizeSelector:[3, 6, 8, 10, 50],
movableColumns:true,
columns:[
    {title:"Zipcode", field:"zipcode", sorter:"number"},
    {title:"Productor", field:"nombre", sorter:"string"},
    {title:"Action", formatter:selectHTML, cellClick:function(e, cell){
        var element = cell.getElement().children.select1.value;
        test(element, cell.getData());
    }},
    {title:"", formatter:editIcon, align:"center", cellClick:function(e, cell) {
        var data = cell.getData();
        modificar_nombre(data);
    }},
],
locale:"es-es"

});

function test(selectedOption, data) {
    if(selectedOption != 0) {
        alert("Chosed option: " + selectedOption);
    }
}

Ждем любого ответа.Большое спасибо!

1 Ответ

0 голосов
/ 27 июня 2019

Ну, я исправил свою проблему следующим образом:

var element= cell.getElement().children.select1.value;
test(element, cell.getData());

* test - это имя функции

Buuuut ... проблема в том, что test () выполняется каждый раз, когда ящелкаю по ячейке:

{title:"Action", formatter:selectHTML, cellClick:function(e, cell) {
        var element = cell.getElement().children.select1.value;
        test(element, cell.getData());
}},

, и я просто хочу выполнить ее, если изменится опция выбора ...

Так что я буду ждать любого ответа.Ура!

...