如何使用getGridParam在我的JQGrid中返回自定义格式化程序?

时间:2016-05-11 13:34:48

标签: jqgrid jqgrid-formatter

这就是我要做的事情:

var p = this.jqGrid("getGridParam"), cm = p.colModel

我能够获得colModel,但我在模型中定义了一些未返回的自定义格式化程序。

{name:'HTML_DEVICE_CNT',index:'HTML_DEVICE_CNT', width:35, align:"center",editable:true, sortable: false,formatter:deviceDetailsPopup,resizable:false,hidden:hiddenDevice},
{name:'edit',index:'edit', width:20, align:"center",editable:true, sortable: false,formatter:contactDetailsPopup,resizable:false},                    

如何让getGridParam也返回自定义格式化程序?

1 个答案:

答案 0 :(得分:1)

解决方案取决于您使用的jqGrid的分支。 Free jqGrid包含iColByName参数,可以简化名称获取colModel的项目。因此,您可以使用像

这样的代码
var p = this.jqGrid("getGridParam"), cm = p.colModel, iColByName = p.iColByName;
var formatter1 = cm[iColByName.HTML_DEVICE_CNT].formatter;
var formatter2 = cm[iColByName.edit].formatter;

如果变量cmName中有列名,则可以使用

var formatter3 = cm[iColByName[cmName]].formatter;

如果你必须使用旧版本的jqGrid,那么你需要对cm数组的所有项进行循环,并将每个项的name属性与列名进行比较,你看起来如何for("edit""HTML_DEVICE_CNT")。例如,请参阅the old answer中的getColumnIndexByName函数。