2

特定の条件下で一部の列の入力を無効/有効にする必要がありますが、タブレータで実行できますか? 何らかの状態 (ブール値など) のテーブルを含むページを開くと、列が使用可能またはロックされて入力できるようになります。ありがとうございました。

例:

//define some sample data
var tabledata = [
    {
        id: 1,
        name: "Oli Bob",
        age: "12",
        col: "red",
        dob: ""
    },
    {
        id: 2,
        name: "Mary May",
        age: "1",
        col: "blue",
        dob: "14/05/1982"
    },
    {
        id: 3,
        name: "Christine Lobowski",
        age: "42",
        col: "green",
        dob: "22/05/1982"
    },
    {
        id: 4,
        name: "Brendon Philips",
        age: "125",
        col: "orange",
        dob: "01/08/1980"
    },
    {
        id: 5,
        name: "Margret Marmajuke",
        age: "16",
        col: "yellow",
        dob: "31/01/1999"
    },
];

var table_3 = new Tabulator("#table_3", {
    height: 205,
    data: tabledata,
    layout: "fitColumns",
    columns: [
        {
            title: "Name",
            field: "name",
            width: 150,
            editor: "input"
        },
        {
            title: "Age",
            field: "age",
            align: "left",
            formatter: "progress",
            editor: "input"
        },
        {
            title: "Favourite Color",
            field: "col",
            editor: "input"
        },
        {
            title: "Date Of Birth",
            field: "dob",
            sorter: "date",
            align: "center",
        },
    ],
});

editor: "input"特定の条件下で無効にするにはどうすればよいですか?

4

1 に答える 1

0

列定義のeditable オプションにコールバックを渡すことができます。これにより、編集中のセルのセル コンポーネントが渡されます。

その後、戻っtrueて編集を許可するかfalse、拒否することができます。

///define editor
var editCheck = function(cell){
    //cell - the cell component for the editable cell

    //get row data
    var data = cell.getRow().getData();

    return data.age > 18; // only allow the name cell to be edited if the age is over 18
}
//in your column definition for the column
{title:"Name", field:"name", editor:"input", editable:editCheck}

詳細については、ドキュメントの編集を参照してください。

于 2020-09-07T07:05:21.193 に答える