这就是我要做的事情:
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也返回自定义格式化程序?
答案 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
函数。