Có lẽ một sự hiểu lầm. Giao diện của custom formatter được xác định bởi jqGrid. Để có các tham số bổ sung trong trình định dạng tùy chỉnh, bạn phải sửa đổi mã nguồn của jqGrid.
Tin tốt là bạn không thực sự cần mở rộng tiêu chuẩn trình định dạng tùy chỉnh. Thay vào đó bạn muốn có thể chỉ cần chia sẻ mã. Vì vậy, bạn có thể xác định mã chung làm chức năng như
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;
}
và gọi hàm từ trình định dạng tùy chỉnh của các cột khác nhau của lưới có thông số bổ sung.
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');
}},
...
]
Đó có phải là những gì bạn muốn không?
Cảm ơn cho câu trả lời và giải thích, tôi nghĩ rằng tôi phải mở rộng định dạng tùy chỉnh nhưng đây là Giải pháp hoàn hảo. Trân trọng – stawek
@stawek: Bạn được hoan nghênh! – Oleg