作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的jqGrid
动态工作。因此所有选项也都是动态加载的。该选项是用 java Map<String,Object>
生成的所有选项都工作得很好,但 de map/opts
内的函数名称不行。这是json
用java生成的 map 。
"colModel":[...{"formatter":"myFunction","index":"","name":""}]
我没有调试jqgrid.src.js
然而我认为问题出在 eval
。未调用“myFunction”并返回未定义。
最佳答案
如果 formatter
选项是预定义的格式化程序之一,则它可以是字符串,但根据 jqGrid docs for custom formatters :
You can define your own formatter for a particular column. Usually this is a function.
所以 jqGrid 期望传递一个函数。这就是为什么 myFunction
有效但 "myFunction"
无效的原因。无论如何,要解决您的问题,您需要输出代码:
"formatter": myFunction
<小时/>更深入一点,可以在jqGrid源文件
grid.base.js中看到格式化程序直接使用函数,但如果传递字符串,则该字符串将传递给
$.fn.fmatter
:
formatter = function (rowId, cellval , colpos, rwdat, _act){
var cm = ts.p.colModel[colpos],v;
if(typeof cm.formatter !== 'undefined') {
var opts= {rowId: rowId, colModel:cm, gid:ts.p.id, pos:colpos };
if($.isFunction( cm.formatter ) ) {
v = cm.formatter.call(ts,cellval,opts,rwdat,_act);
} else if($.fmatter){
v = $.fn.fmatter(cm.formatter, cellval,opts, rwdat, _act);
} else {
v = cellVal(cellval);
}
} else {
v = cellVal(cellval);
}
return v;
},
如果 jquery.fmatter.js 中尚不存在该函数那么我预计当网格尝试使用它时会发生错误。
关于jquery - JqGrid colModel 动态格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709137/
我是一名优秀的程序员,十分优秀!