所以我有一个 jqgrid,我使用自定义格式化程序来格式化列,无论如何,当我单击列头进行排序时,它按预期对列进行排序,但它删除了我所做的格式,而是将“[object Object]"到格式化程序应该完成其工作的列中。
特定的格式化程序是:
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);
}
这似乎适用于删除和添加行,但是一旦我点击 resort,列就会从图像变为字符串 [object Object]
关于如何解决这个问题有什么想法吗?
为了完整性,这里是我的整个 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
});
最佳答案
问题的原因是custom formatter的错误用法.实现自定义格式器的函数必须返回字符串。
我不建议您分配 id
如果不是真的需要,则将属性赋予网格元素。我不明白为什么你需要 <img>
带有 ID。
如果您需要在单击带有 <img>
的单元格时执行一些自定义操作你可以更好地使用onCellSelect
回调。
如果你的网络还没有实现unformat
对于您使用 custom formatter 的同一列我建议您这样做。
关于javascript - JQGrid:排序和自定义格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11026537/