2013-03-15 78 views
0

我试图在dataInit中使用jQueryGrid中的jQuery UI自动完成。我做这样的:自动完成数据初始化

{ 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

我认为你的问题的主要原因是错误的使用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的回拨号码是错误的。

+0

感谢您回复@Oleg!我很抱歉,但我不明白你的意思:( – mailazs 2013-03-15 20:11:58

+1

@mzs_newbie:'ondblClickRow'是回调函数。函数的所有参数都是由jqGrid定义的,你不能改变它。你使用'ondblClickRow:function(在你的代码中使用id,select,{... $('#list')。editRow(id,true,select); ...}'所以你转发了'ondblClickRow'的第2个参数'select'和我命名'iRow')作为3-d参数在调用'editRow'的过程中出现错误 – Oleg 2013-03-15 20:18:58

+0

Ohhh ok,我现在明白了,谢谢,我改变了一切,但仍然不起作用 – mailazs 2013-03-15 20:23:03