ExtJS Grid renderer доступ к гриду и тулбару
Всем привет!
Имеется вопрос по ExtJS Grid.
В моем компоненте есть грид, по сути стандартный, на базе modExtra все сделано.
Наверху, над гридом — тулбар с несколькими полями поиска/фильтра, в том числе по автору.
Поле Автор отображается с использованием своего renderer (_renderUserCell):
Поясняющая картинка (нажмите для увеличения)
Имеется вопрос по ExtJS Grid.
В моем компоненте есть грид, по сути стандартный, на базе modExtra все сделано.
Наверху, над гридом — тулбар с несколькими полями поиска/фильтра, в том числе по автору.
Поле Автор отображается с использованием своего renderer (_renderUserCell):
{
header: _('board_advert_createdby'),
dataIndex: 'createdby',
renderer: this._renderUserCell
}
...
_renderUserCell: function(val, cell, row, rowIndex, colIndex, store, view) {
return '<a href="javascript:void(0);" onclick="XXX">' + row.get('username') + '</a><br /><small>(' + val + ')</small>' : '';
}
Вопрос вот в чем… как мне в onclick=«XXX» установить в поле Автор значение ячейки и «нажать» Поиск? Хочу в общем в один клик по ячейке с именем автора фильтровать данные по пользователю.Поясняющая картинка (нажмите для увеличения)
Комментарии: 2
Всю магию делал в файле items.grid.js
в рендерере для ссылки добавил атрибут myattr, в котором помещается текст, который нужно кидать в searchbox и класс myClick, по которому элемент буду отлавливать
в методе onClick от modExtra есть стандартная проверка на if (elem.nodeName == 'BUTTON') {
после неё добавил
в рендерере для ссылки добавил атрибут myattr, в котором помещается текст, который нужно кидать в searchbox и класс myClick, по которому элемент буду отлавливать
_renderUserCell: function(val, cell, row, rowIndex, colIndex, store, view) {
return '<a href="javascript:void(0);" class="myClick" myattr="'+row.get('pagetitle')+'">' + row.get('pagetitle') + '</a><br /><small>(' + val + ')</small>';
},
В getTopBar для field-search добавил id...
xtype: 'mycomponent-field-search',
id: 'my-search-block',
width: 250,
...
(это стандартный поиск, тебе соответственно id добавлять в своё поле «Автор»)в методе onClick от modExtra есть стандартная проверка на if (elem.nodeName == 'BUTTON') {
после неё добавил
if (elem.nodeName == 'A' && elem.className == 'myClick') {
search = Ext.getCmp('my-search-block'); //ищу блок поиска по id
search.setValue(elem.getAttribute('myattr')); //в него ставлю поисковой текст
search._triggerSearch(); //имитируем нажатие кнопки
}
Спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.