自动完成单元格上的滑动网格设置值

时间:2012-09-11 16:43:30

标签: autocomplete edit slickgrid

我正在尝试通过jQuery和val文本在一个光滑的网格中设置值,例如.find( 'div.slick-cell.l2.r2')。文本( 'XYZ')。有问题的单元格上有一个jquery自动完成,但它只在点击时激活。因此,当我单击相关单元格时,它会被编辑器中的初始defaultValue覆盖:

function ComboBoxEditor(args) {
    ...
    this.loadValue = function (item) {
        defaultValue = item[args.column.field] || "";
        $input.val(defaultValue);
        $input[0].defaultValue = defaultValue;
        $input.select();
    }; 
    ...

我可以从光滑网格的世界中获取jQuery文本值。

1 个答案:

答案 0 :(得分:0)

将slickgrid视为渲染引擎,将dataView视为数据接口(您正在使用dataView吗?)dom元素的Jquery或javascript编辑无法工作,请考虑jquery / javascript如何使用dataView方法进行更新。 将drag and drop of files添加到SlickGrid

时,我遇到了同样的问题

我检测到drop的elementID并将其映射回dataView行和列。

这是我用于文本粘贴的功能:

function insertText(textString, location) {
            grid.resetActiveCell();
            $(location).click();
            var startCell = grid.getActiveCell();
            if (startCell) {
// only paste text into active cells for now
                    var columnDef   =       grid.getColumns();
                    var colField = columnDef[startCell.cell].field;
                    if (!dataView.getItem(startCell.row)) {
// new row
                            var tobj = {'id': "new_" + (Math.random() + 1).toString(36).substring(7)};
                            tobj[colField] = textString;
                            dataView.addItem(tobj);
                    } else {
// modify existing cell
                            var item = dataView.getItem(startCell.row);
                            item[colField] = textString;
                            dataView.updateItem(item.id, item);

                    }
                    grid.resetActiveCell();
                    grid.render();
                    dataView.refresh();
    }
}