Es probablemente un malentendido. La interfaz de custom formatter está definida por jqGrid. Para tener parámetros adicionales en el formateador personalizado, debe modificar el código fuente de jqGrid.
La buena noticia es que realmente no necesita extender el formateador personalizado estándar. En lugar de eso, probablemente solo desee compartir el código. Así se puede definir el código común como la función como
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;
}
y llamar a la función desde el formateador personalizado de las diferentes columnas de la cuadrícula con parámetros adicionales.
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');
}},
...
]
¿Es lo que quieres?
Gracias por la respuesta y la explicación, pensé que tengo para extender formateador personalizado pero esto es Solución perfecta. Saludos – stawek
@stawek: ¡De nada! – Oleg