to chyba nieporozumienie. Interfejs custom formatter jest zdefiniowany przez jqGrid. Aby mieć dodatkowe parametry w edytorze niestandardowym, należy zmodyfikować kod źródłowy jqGrid.
Dobrą wiadomością jest to, że tak naprawdę nie trzeba rozszerzać standardowego formatyzatora standardowego. Zamiast tego prawdopodobnie chcesz po prostu udostępnić kod. Więc można zdefiniować jako wspólny kod funkcji jak
function imageLinkFormatter(cellval, options, rowObject, icon, link_class, link_action) {
var img = '<span class="ui-icon ' + icon + ' icon"><span/>';
var link = '<a href="#' + link_action + '/id/' + rowObject.id + '" class="' +
link_class + '" rel="' + rowObject.id + '">' + img + '</a>';
return link;
}
i wywołać funkcję z niestandardowym formater poszczególnych kolumn siatki z dodatkowymi parametrami.
colModal: [
{name: 'col1', formatter: function (cellvalue, options, rowObject) {
return imageLinkFormatter(cellvalue, options, rowObject,
'ui-icon-pencil', 'edit-link-class', 'Edit');
}},
{name: 'col2', formatter: function (cellvalue, options, rowObject) {
return imageLinkFormatter(cellvalue, options, rowObject,
'ui-icon-plus', 'add-link-class', 'Add');
}},
{name: 'col2', formatter: function (cellvalue, options, rowObject) {
return imageLinkFormatter(cellvalue, options, rowObject,
'ui-icon-trash', 'del-link-class', 'Delete');
}},
...
]
Czy tego chcesz?
Dzięki za odpowiedź i wyjaśnienie, pomyślałem, że muszę przedłużyć niestandardowego formatowania, ale to jest idealne rozwiązanie. Pozdrawiam – stawek
@stawek: Nie ma za co! – Oleg