2

我正在使用可动手做的东西做一些事情,我想创建一个函数来真正添加 soem 格式。具体来说,我希望有更改背景颜色和字体属性的选项。

我已经能够进入上下文菜单来添加一个按钮,以及获取所选单元格的坐标,但是我找不到在初始化调用handsontable 之外设置格式选项的方法。

这是我一直在查看的文档,https://github.com/warpech/jquery-handsontable/wiki/Options#cell-options,我希望其他地方还有更多。

我没有要提供的代码,因为这是一个被锁定的项目,但我真的在研究如何为不在初始化的单个单元格设置格式选项。

4

4 回答 4

1

这需要对文档进行一些挖掘,但我确实找到了它......

此示例将为所有选定的单元格提供红色字体。

callback: function (key, options) {
    var cell = $("#dataBlock'. $val['id'] .'").handsontable(\'getSelected\');
    var startRow = cell[0];
    var startCol = cell[1];
    var endRow = cell[2];
    var endCol = cell[3];

    if (key === "redFont") {
        setTimeout(function () {
            curRow = startRow;
            curCol = startCol;
            while(curRow <= endRow){
                curCol = startCol;
                while(curCol <= endCol){
                    check = $("#dataBlock'. $val['id'] .'").handsontable("getCell", curRow, curCol);
                    check.style.color = "red";
                    curCol += 1;
                }
                curRow += 1;
            }
        }, 100);
    }
}
于 2013-08-16T19:42:44.993 回答
1

如果你使用 jQuery,你可以使用标准的 addClass/removeClass 函数。

我有一个页面全局 Handsontable 实例,我称之为“热”。给定 rowNum 和 colNum:

        var cell = hot.getCell(rowNum,colNum);
        $(cell).addClass('yellow');
于 2015-10-12T20:41:23.070 回答
0

定义渲染器函数

function valueRenderer(instance, td, row, col, prop, value, cell) {
    if (row === 0 && col === 1) {
        $(td).css('color', 'green');
    }

    if (col > 3) {
        $(td).addClass('custom');
    }

    if (col === 5) {
        cellProperties.readOnly = true;
    }

    if (col > 3 && col < 10) {
        cellProperties.type = 'numeric';
    }
    ....
    ....
    so on...
}

然后在可操作的单元格选项中

 cells: function (row, col, prop) {
                var cellProperties = {};
                cellProperties.renderer = valueRenderer;
                return cellProperties;
        }

通过这种方式,您可以随时更改属性、应用类、更改颜色等。

于 2015-02-10T20:18:58.883 回答
0

我尝试了 jomofrodo 的解决方案,这对我尝试使用类更改背景颜色不起作用 - 但它确实激发了一些有效的东西:

var cell = handsOnTable_Conditions.getCell(x_coord,y_coord);
$(cell).css('background-color','red');

但是,与直接更改样式的这种解决方案相比,直接更改类可能具有灵活性的优势。

于 2017-10-11T16:11:04.883 回答