2

我正在尝试从 jQuery 到 val 和文本(例如 .find('div.slick-cell.l2.r2').text('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 文本值吗?

4

1 回答 1

0

将 slickgrid 视为渲染引擎,将 dataView视为数据接口(您使用的是 dataView 对吗?) dom 元素的 Jquery 或 javascript 编辑不起作用,因此请考虑 jquery/javascript 如何使用 dataView 方法进行更新. 在将文件拖放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();
    }
}
于 2014-01-23T16:05:45.410 回答