edytuj inline jqGrid: dziwne zachowanie z kolumną autouzupełniania
Mam jqGrid (przy edycji bezpośredniej) z kolumną autouzupełniania. Gdy użytkownik wybierze wartość z kolumny autouzupełniania, moduł obsługi zdarzeń ustawia wartość w innej kolumnie, a także ustawia wartość w kolumnie autouzupełniania na inną niżlabel
zwrócone ze źródła autouzupełniania. Dwie definicje kolumn (kompletnejsFiddle przykład tutaj):
{
name: 'cartoonId',
index: 'cartoonId',
width: 90,
editable: false},
{
name: 'cartoon',
index: 'cartoon',
width: 200,
editable: true,
edittype: 'text',
editoptions: {
dataInit: function(elem) {
$(elem).autocomplete({
source: autocompleteSource,
select: function(event, ui){
var rowId = $("#inlineGrid").jqGrid('getGridParam', 'selrow');
if(ui.item){
$("#inlineGrid").jqGrid('setCell', rowId, 'cartoonId', ui.item.CartoonId);
$("#inlineGrid").jqGrid('setCell', rowId, 'cartoon', ui.item.Name);
}
return false;
}
});
}
}},
Problem polega na tym, że gdy użytkownik wybierze wartość z autouzupełniania, klikając ją lub używając strzałek i naciskając klawisz tabulacji, ta komórka nie jest już edytowalna, a siatka wydaje się całkowicie tracić ostrość. Jeśli skomentuję linię, która ustawiacartoon
wartość komórki zachowuje się normalnie. Czy jest jakiś sposób, aby obejść to zachowanie? Cały wiersz musi pozostać w trybie edycji, w tym w trybiecartoon
kolumna, dopóki użytkownik nie zakończy edycji.
jqGrid 4.4.1
jQuery 1.7.2
jQuery UI 1.8.18