Javascript 如何将其他变量传递给jqGrid格式化程序?

Javascript 如何将其他变量传递给jqGrid格式化程序?,javascript,variables,jqgrid,formatter,Javascript,Variables,Jqgrid,Formatter,我正在尝试为jqGrid列创建某种可重用的格式化程序, 我想创建自定义格式化程序,在其中我可以传递额外的数据,类似于以下代码: function imageLinkFormatter(cellval,options,rowObject,icon,link_class,link_action){ var img='<span class="ui-icon '+icon+' icon"><span/>'; var link='<a href="

我正在尝试为jqGrid列创建某种可重用的格式化程序, 我想创建自定义格式化程序,在其中我可以传递额外的数据,类似于以下代码:

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;
    }
函数imageLinkFormatter(cellval、选项、行对象、图标、链接类、链接操作){
var img=“”;
var-link='';
返回链接;
}

这可能是一个误解。的接口由jqGrid定义。要在自定义格式化程序中具有其他参数,必须修改jqGrid的源代码

好消息是,您实际上不需要扩展标准自定义格式化程序。相反,您可能只需要共享代码。因此,您可以将公共代码定义为如下函数

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;
}

这是您想要的吗?

在列定义中定义格式选项

colModal:[
{name:'col1',
格式化程序:imageLinkFormatter,
格式选项:{
图标:“ui图标铅笔”,
链接类:“编辑链接类”,
操作:“编辑”
}},
{name:'col2',格式化程序:imageLinkFormatter,格式化选项:{icon:'ui icon plus',link_class:'add link class',action:'add'}},
{name:'col3',格式化程序:imageLinkFormatter,格式化选项:{icon:'ui icon trash',link_class:'del link class',action:'Add'}}
...
]
然后您可以在自定义格式化程序中访问它

函数imageLinkFormatter(cellval、选项、rowObject){
var img=“”;
var-link='';
返回链接;
}

感谢您的回答和解释,我认为我必须扩展自定义格式化程序,但这是一个完美的解决方案。当做
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');
        }},
    ...
]