【问题标题】:handsontable is it possible to have comboboxes (dropdowns) on a row rather than a column?handsontable 是否可以在一行而不是一列上有组合框(下拉菜单)?
【发布时间】:2015-09-30 01:35:33
【问题描述】:

是否可以在一行而不是一列上设置组合框(下拉菜单)?

我发现的所有示例都只讨论列,例如 http://docs.handsontable.com/0.15.0-beta6/demo-dropdown.html

我需要一排可编辑的组合框,如果可能的话,有没有人有任何示例说明如何实现这一点?

【问题讨论】:

    标签: handsontable


    【解决方案1】:

    是的,您要做的是使用cells 选项,就像使用columns 一样。在这个中,您将获得row,col,因此您可以执行以下操作:

    cells: function(row,col) {
        if (row == 0) {
            // checkbox logic
        }
    }
    

    这应该就是全部了!

    JsFiddle with example

    【讨论】:

    • 谢谢,但我不明白如何应用“复选框”逻辑使单元格成为组合框。你能详细说明或展示一个 jsfiddle 吗?
    • 当然,虽然这对你来说是一个很好的练习。无论如何我做到了,但我建议你也学会自己做,因为在使用 Handsontable 时,将条件选项应用于单元格和列是至关重要的
    • 太棒了。感谢 jsfiddle 很有帮助
    【解决方案2】:

    @ZekeDroid 为我指出了我实际要求的答案的正确方向。在此处添加代码,这样您就不必浪费时间学习自己动手了。

    函数 getCarData() { 返回 [ ['dog', 'dog', 'dog','dog'], ["Something", 2013, "blue", "blue"], ["Else", 2014, "yellow", "black"], [“这里”,2015,“白色”,“灰色”]]; }

    var
    container = document.getElementById('example1'),
        hot;
    
    hot = new Handsontable(container, {
        data: getCarData(),
        colHeaders: ['Car', 'Year', 'Chassis color', 'Bumper color'],
        cells: function (row, col, prop) {
            var cellProperties = {};
    
            if (row === 0) {
                cellProperties.type = 'dropdown';
                cellProperties.source = ['yellow', 'dog', 'cat'];
            }
    
            return cellProperties;
        }
    });
    

    【讨论】:

    • 我可以只为单个单元格而不是为整个列/行附加/提供下拉列表吗?我无法做到这一点。会不会像if (row === 0 && col === 1) {}一样简单?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 2020-12-25
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多