JQGrid:排序和自定义格式化程序

JQGrid: Sorting & Custom formatters

本文关键字:格式化 程序 自定义 排序 JQGrid      更新时间:2023-09-26

所以我有一个jqgrid,我使用自定义格式化程序来格式化列,无论如何,当我单击列子头进行排序时,它会按预期对列进行排序,但它删除了我所做的格式,而是将"[对象对象]"放入格式化程序应该完成其工作的列中。

特定的格式化程序是:

function(cellVal, options, rowObject){
    var optsURI = '../webrelease/common/images/page_v2_u'+(rowObject.opt2Up==2?1:0)+'_s'+(rowObject.optDuplex?1:0)+'_c'+(rowObject.optColor?1:0)+'_52.png';
    return $('<img class="finishing_icon" height="40" src="'+optsURI+'" />').attr('jobid', rowObject.jobid).click(finishingOptsCycle);
}

这似乎适用于删除和添加行,但是一旦我点击度假村,列就会从图像变为字符串 [对象对象]

关于如何解决这个问题的任何想法?

为了完整起见,这是我的整个jqgrid(不包括行和格式化程序):

grid.jqGrid({
    datatype: "local",
    editurl: "clientArray",
    width: 680,
    height: 290,
    colNames: [...],
    colModel: [...],
    hidegrid: false,
    shrinkToFit:false,
    multiselect: true,
    scroll:1,
    loadui: "block",
    loadtext: "Loading job list...",
    caption: 'Job List <img class="refreshbutton" width="20" height="20" src="../webrelease/desktop/images/icon_circle_arrow_right.png" />',
    pager: '#jqgrid_pager',
    onSelectRow: rowSelect,
    onSelectAll: allRowsSelect
});

问题的原因是自定义格式化程序的错误用法。实现自定义格式化程序的函数必须返回字符串

如果不是真正需要的,我不建议您id属性分配给网格元素。我不明白为什么你需要用 id <img>

如果您需要在单击带有<img>单元格时实现一些自定义操作,则可以更好地使用onCellSelect回调。

如果您尚未为使用自定义格式化程序的同一列实现unformat,我建议您这样做。