2013-03-15 75 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