Autocomplete 自动完成单元格上的平滑网格集值

Autocomplete 自动完成单元格上的平滑网格集值,autocomplete,edit,slickgrid,Autocomplete,Edit,Slickgrid,我试图在一个光滑的网格中设置值,从jQuery到val和文本,例如find('div.slick-cell.l2.r2')。text('xyz')。在讨论中的单元格上有一个jquery自动完成,但它只在单击时被激活。因此,当我单击相关单元格时,它会被编辑器中的初始默认值覆盖: function ComboBoxEditor(args) { ... this.loadValue = function (item) { defaultValue = item[args

我试图在一个光滑的网格中设置值,从jQuery到val和文本,例如find('div.slick-cell.l2.r2')。text('xyz')。在讨论中的单元格上有一个jquery自动完成,但它只在单击时被激活。因此,当我单击相关单元格时,它会被编辑器中的初始默认值覆盖:

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

我可以从slick grid中获取jQuery文本值。

将slickgrid视为一个渲染引擎和数据接口(您使用的是dataView,对吧?)jQuery或javascript对dom元素的编辑不起作用,因此请考虑jQuery/javascript如何使用dataView方法进行更新。 我在添加到时遇到了相同的问题

我检测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();
    }
}

将slickgrid视为渲染引擎和数据接口(您使用的是dataView,对吧?)Jquery或javascript对dom元素的编辑不起作用,因此请考虑Jquery/javascript如何使用dataView方法进行更新。 我在添加到时遇到了相同的问题

我检测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();
    }
}