2016-05-11 2 views
0

Это то, что я пытаюсь сделать:Как вернуть пользовательский форматтер в моем JQGrid с помощью getGridParam?

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

Это больше о том, как получить ключевое значение для определенного элемента в словаре из массива объектов в javascript, поскольку p.colModel даст вам массив объектов, каждый из которых является словарем с форматированием ключ. Таким образом, p.colModel [0] .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 каждого элемента с именем столбца, которое вы ищете ("edit" или "HTML_DEVICE_CNT"). См. Функцию getColumnIndexByName от the old answer, например.

Смежные вопросы