Сделайте фильтр ExtJS типа "int` с "равным` сравнением


Я использую ExtJS в одном старом (и не моем) проекте, и мне нужно его отладить.
Итак, у меня есть один код в форме поиска:

var pm = Ext.getCmp('ddlFltrPM').getValue();
if(pm && pm > 0)    
filters.push({dataIndex: 'project_manager_id', type: 'string', value: pm});

Это работает, но в php-коде функция преобразует этот фильтр в sql-запрос следующим образом:
AND project_manager_id LIKE %...% ( по умолчанию функция преобразования), потому что это string файл поиска.

Но мне нужно точное совпадение. Поэтому, когда я пытаюсь сделать что-то вроде этого:

var pm = Ext.getCmp('ddlFltrPM').getValue();
if(pm && pm > 0)    
filters.push({dataIndex: 'project_manager_id', type: 'int', comparison:'eq', value: pm});

..фильтр не отображается в СООБЩЕНИИ. Я перепробовал множество вариантов type и comparison, но ничего не работает.

Итак, как я могу изменить это поле фильтра на int с помощью сравнения eq?

Спасибо за ваши предложения.
Станислав.

Author: StasGrin, 2012-11-22

1 answers

Я решил эту проблему. Но было трудно отлаживать код ExtJS шаг за шагом. Итак, код:

var pm = Ext.getCmp('ddlFltrPM').getValue();
if(pm && pm > 0)    
filters.push({dataIndex: 'project_manager_id', type: 'int', value: {"eq":pm}});
 4
Author: StasGrin, 2012-11-23 12:39:26