gpt4 book ai didi

jquery - JqG​​rid colModel 动态格式化程序

转载 作者:行者123 更新时间:2023-12-01 05:00:25 24 4
gpt4 key购买 nike

我的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 - JqG​​rid colModel 动态格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com