Не пойму они ведь по сути обернуты и так в одном grid. Как мне по кнопке опять же получить объект на текущем grid? Прочтите пожалуйста комментарий выше, у меня такое ощущение что мы о разном говорим.
Я бы вот как решил твою задачу:
FormPanel, к примеруbubbleEventcombogrid.Не понял, еще раз на пальцах: есть вот это: xtype: 'sendex-combo-user' // Имя поля ,name: 'user_id' ,hiddenName: 'user_id' // Ширина - 50% ,width: '50%' ,listeners: { // При выборе позиции нужно запустить метод addSubscriber таблицы select: {fn: this.addSubscriber, scope: this} } как мне его к примеру обновить нажав на кнопку, находящуюся в том же gride? Сейчас добавляю id, и получаю через getcmp(), но есть ли альтернативные варианты получения данного объекта? все таки ведь на одном гриде…
Если тебе нужен combo, то scope можешь не передавать. Твоя функция будет вызвана в контексте combo
Доброе утро, Николай!) А более конкретное решение есть? Параметры MIGx в Действиях прописаны такие: &configs=packagemanager||migxconfigs||setup Все вроде, как стандартно. Или укажите пожалуйста, где что конкретно нужно посмотреть или дописать.
Я имел ввиду scope:this там есть, то как мне обратится к xtype: 'sendex-combo-user' в tbar?
В данном случае функция this.addSubscriber будет вызвана в контексте this
Но если тут к примеру есть: select: {fn: this.addSubscriber, scope: this} Как мне потом к этому объекту обратится?
Пользовался руководствами от сюда: bezumkin.ru/training/course1/2202/ Sendex.combo.User = function(config) { config = config || {}; Ext.applyIf(config,{ name: 'user_id' ,fieldLabel: _('sendex_subscriber') ,hiddenName: config.name || 'user_id' ,displayField: 'username' ,valueField: 'id' ,anchor: '99%' ,fields: ['username','id','fullname'] // Количество результатов на странице ,pageSize: 20 // Используем родной процессор MODX ,url: MODx.config.connectors_url + 'security/user.php' // Комбо можно редактировать, то есть - искать юзеров ,editable: true // Можно оставлять пустым ,allowBlank: true // Текст по умолчанию ,emptyText: _('sendex_select_user') // Данные для отправки процессору ,baseParams: { action: 'getlist' ,combo: 1 } // Шаблон оформления, похоже на Smarty ,tpl: new Ext.XTemplate('' +'<tpl for="."><div class="sendex-list-item">' +'<span><small>({id})</small> <b>{username}</b> ({fullname})</span>' +'</div></tpl>',{ compiled: true }) // Какой элемент является селекторо. То есть, выбор будет при клике на этот элемент ,itemSelector: 'div.sendex-list-item' }); Sendex.combo.User.superclass.constructor.call(this,config); }; Ext.extend(Sendex.combo.User,MODx.combo.ComboBox); Ext.reg('sendex-combo-user',Sendex.combo.User); ,tbar: [{ xtype: 'sendex-combo-user' // Имя поля ,name: 'user_id' ,hiddenName: 'user_id' // Ширина - 50% ,width: '50%' ,listeners: { // При выборе позиции нужно запустить метод addSubscriber таблицы select: {fn: this.addSubscriber, scope: this} } ]} вроде бы практически аналогично и у меня. Разьве так не правильно? Потом добавлять xtype ??
Объявляйте компонент не лениво, а полностью через new, как здесь, к примеру. И еще краткий пример: this.field = new new MODx.combo.Context({ .........., ,listeners:{ select: { fn: function(combo){ var context_key = combo.getValue(); var store = this.getStore(); var field = this.field; } ,scope: this } } });