powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вычисляемый ComboBox
1 сообщений из 1, страница 1 из 1
Вычисляемый ComboBox
    #39021413
Marina Sheglova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗАДАНИЕ: В РЕЗУЛЬТАТЕ ОБРАБОТКИ КОДА НЕОБХОДИМО, ЧТОБЫ В 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);
}
}
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вычисляемый ComboBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]