|
|
|
Вычисляемый ComboBox
|
|||
|---|---|---|---|
|
#18+
ЗАДАНИЕ: В РЕЗУЛЬТАТЕ ОБРАБОТКИ КОДА НЕОБХОДИМО, ЧТОБЫ В COMBOBOX ВЫВОДИЛАСЬ ДАТА ЗАКРЫТИЯ ДЛЯ ТЕХ КАФЕДР, ГДЕ ОНА МЕНЬШЕ ТЕКУЩЕЙ. Язык: JavaScript, Фреймворк: ExtJS 4.2. (официальная документация по фрейму http://docs.sencha.com/) ДАННЫЕ С СЕРВЕРА ОТОБРАЖАЮТСЯ ПОСРЕДСТВОМ ВОТ ЭТОГО КУСКА КОДА: Ext.define('TPL.store.dict.Department', { extend: 'Ext.ux.data.BaseStore', //autoLoad: true, fields: [ {name: 'shortName', type: 'string'}, {name: 'name', type: 'string'}, {name: 'id', type: 'int'}, {name: 'parentId', type: 'int'}, {name: 'closed', type: 'string'} ---->если вместо string я прописываю тип date, то шаблонизатор выдает всё вплоть до часового пояса и местоположения рабочего компьютера, чего не требуется ], proxy: { type: 'ajax', //запрос на сервер url: '/context/manage/mydepartments', //'/payload/dict/department_list', reader: { type: 'json', //запрос с сервера root: 'data', successProperty: 'success' } }, sorters: [ { property: 'name' } ] }); ЗАДАЛА СТАНДАРТНЫЙ ШАБЛОНИЗАТОР: tpl: Ext.create('Ext.XTemplate', '<tpl for=".">', '<tpl if={closed} < {Ext.Date.now()}', '<div class="x-boundlist-item">{name} (закрыта с {closed})</div>', '</tpl>' ), для вывода дат и сообщений о закрытии кафедр. Без строки с условием '<tpl if={closed} < {Ext.Date.now()}', код работает, но не фильтрует даты, превышающие текущую. Так же при попытке оставить строку с условием без изменения, комбик не открывает текстфилды и не отображает выпадающий список кафедр т.е. не обрабатывает combobox полностью. Есть предположение, что дело в том, что я не корректно задаю условие (не те тэги или что-то в этом же духе) или же в условии я сравниваю типы date и string (заданные в коде, отвечающем за обработку данных с сервера), а чтобы добиться работоспособности кода, нужно преобразовать date в string, т.е .привести к одному типу. Тогда возникает еще вопрос: где это прописать, если сам шаблонизатор, впилиный в комбик не подразумевает таких конструкций и нагромождений, а кусок, отвечающий за отображение данных с сервера имеет свою специфику отправки запросов? Так же возможно, что в место условия '<tpl if={closed} < {Ext.Date.now()}', нужно прописать фильтр. Если так, то как его уместить в тот же самый шаблонизатор? ВОТ САМ COMBOBOX: { xtype: 'combobox', fieldLabel: 'Кафедра', store: 'dict.Department', queryMode: 'local', displayField: 'name', valueField: 'id', tpl: Ext.create('Ext.XTemplate', '<tpl for=".">', '<tpl if={closed} < {Ext.Date.now()}', '<div class="x-boundlist-item">{name} (закрыта с {closed})</div>', '</tpl>' ), width: 600, name: 'department', selectOnFocus: true, listeners: { beforequery: function(qe) { qe.query = new RegExp(qe.query, 'i'); qe.forceAll = true; filters = this.store.filters.items; this.store.filter(filters); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2015, 09:01 |
|
||
|
|

start [/forum/topic.php?fid=22&gotonew=1&tid=1445816]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
13ms |
get first new msg: |
9ms |
get forum data: |
4ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 395ms |

| 0 / 0 |
