перед свертыванием и перед развертыванием событий в наборе полей extjs4

Мы используем fieldset в нашем приложении с помощью extjs3. Теперь мы продвигаемся к extjs4. Так что beforeexpand и beforecollapse не работают в extjs4. Есть ли шанс использовать эти или еще какую-либо замену этим событиям. Пожалуйста, помогите мне. Я ищу много для этих.


person Unknown    schedule 19.07.2011    source источник


Ответы (1)


Да, таких событий нет, но их легко создать самостоятельно. Вот мой набор полей, который расширяет исходный и запрашивает события:

Ext.define('MY.fieldset', {
    extend: 'Ext.form.FieldSet',
    alias: 'widget.myfieldset',
    initComponent: function() {
        this.addEvents('beforeexpand', 'beforecollapse');
        this.callParent([arguments]);
    },
    setExpanded: function(expanded){
        var bContinue;
        if (expanded)
            bContinue = this.fireEvent('beforeexpand', this);
        else
            bContinue = this.fireEvent('beforecollapse', this);
        if (bContinue !== false)
            this.callParent([expanded]);
    }
});

И здесь рабочий пример.

person Molecular Man    schedule 19.07.2011
comment
Привет, Молекула, у меня есть еще одно сомнение. Если мы нажмем кнопку поиска, первая строка в сетке должна быть выбрана? Как этого добиться? - person Unknown; 19.07.2011
comment
Привет @Kiran, я не проверял, но думаю, вам нужно добавить что-то вроде 'grid.getSelectionModel().select(0)' в обработчик нажатия кнопки - person Molecular Man; 19.07.2011
comment
да, я пробовал grid.getSelectionModel().select(0), grid.getSelectionModel().getSelection().select(0),grid.view.getSelectionModel().focus(0). Но никаких улучшений. Если у вас есть идеи, пожалуйста, помогите мне. - person Unknown; 19.07.2011
comment
Это будет работать для кнопки в bbar. Если мы укажем кнопку отдельно и если мы напишем этот код в обработчике нажатия этой кнопки, он не будет работать. - person Unknown; 19.07.2011
comment
Вы делаете что-то не так. Это должно работать - person Molecular Man; 19.07.2011