【问题标题】:How do i return custom formatter in my JQGrid using getGridParam?如何使用 getGridParam 在我的 JQGrid 中返回自定义格式化程序?
【发布时间】:2016-05-11 13:34:48
【问题描述】:

这就是我想要做的:

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 也返回自定义格式化程序?

【问题讨论】:

  • 这更多的是我如何从 javascript 中的对象数组中获取字典中特定项目的键值,因为 p.colModel 会给你一个对象数组,每个对象都是带有格式化键的字典。所以 p.colModel[0].formatter 会给出第一项的格式化程序。

标签: jqgrid jqgrid-formatter


【解决方案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 属性与您查找的列名进行比较 (@987654330 @ 或 "HTML_DEVICE_CNT")。例如,参见 the old answer 中的函数 getColumnIndexByName

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多