自动完成dataInit

时间:2013-03-15 13:36:55

标签: jqgrid jquery-autocomplete double-click inline-editing

我正在尝试在dataInit的jqGrid中使用jQuery UI Autocomplete。我是这样做的:

{ name:'ac_fin_g', index:'ac_fin_g', width:75, editable: true, edittype: 'text',
    editoptions: {
        dataInit: function (elem) {
            $(elem).autocomplete({
                source: 'autocomplete.php',
                select: function (event, ui) {
                    #('ac_fin_g').val(ui.item.value);
                }
            });
        }
   }}

在函数ondblClickRow中,我像参数一样传递select

ondblClickRow: function (id, select) {
    if (id) {
        if (id !== lastSel) {
            $('#list').restoreRow (lastSel);
            $('#list').editRow (id, true, select);
            lastSel = id;
        } else {
            $('#list').restoreRow (lastSel);
            lastSel = "";
        }
    }
}

这是有效的,但仅适用于第一行。

1 个答案:

答案 0 :(得分:1)

我认为您问题的主要原因是ondblClickRow回调的错误使用。 ondblClickRow回调的第二个参数是网格中行的索引。您还可以使用其他选项。最完整的ondblClickRow回调原型包含4个参数:

// one can use ondblClickRow: function (id) { below because iRow, iCol, e are not used
ondblClickRow: function (id, iRow, iCol, e) {
    var $self = $(this);
    if (id !== lastSel) {
        $self.jqGrid("restoreRow", lastSel);
        lastSel = id;
    }
    $self.jqGrid("editRow", id, true);
}

editRow的第三个参数是oneditfunc回调。使用iRow号作为oneditfunc回调是错误的。