Расширение панели Extjs

#extjs #extjs3

#extjs #extjs3

Вопрос:

У меня есть панель extjs. Мне нужно вызвать свойство перетаскивания и изменения размера для этой панели.

Это код для создания панели:

 var childPanel = new Ext.Panel({
                    draggable: true,
                    layout: 'fit',

 ................
});
  

Я добился перетаскивания и изменения размеров свойств с помощью кода:

 Ext.override(Ext.Panel, {
                    // private
                    initEvents: function () {

                        if (this.draggable) {
                            this.initDraggable();
                        }
                        this.resizer = new Ext.Resizable(this.el, {
                            animate: true,
                            duration: '.6',
                            easing: 'backIn',
                            handles: 'all',
                            pinned: false,
                            transparent: true
                        });
                        this.resizer.on("resize", this.onResizer, this);
                    },
                    onResizer: function (oResizable, iWidth, iHeight, e) {
                        this.setHeight(iHeight);
                        this.setWidth(iWidth);
                    }
                });
  

Как вы можете видеть, я переопределяю свойство. Поэтому все панели, которые я создаю, имеют эти свойства. Я не хочу, чтобы это было так.

Я знаю, что Ext.extend — это метод, который нужно использовать, но каждый раз я получаю некоторые ошибки. Что мне нужно, так это расширенная панель с приведенным выше кодом.

Кто-нибудь может мне помочь в этом?

Комментарии:

1. Я согласен с Бенуа, пожалуйста, опубликуйте код расширения, с которым у вас возникли проблемы

Ответ №1:

Вы устали от расширения? в чем были ошибки? Вы должны помнить, что нужно вызвать конструктор суперкласса из расширенных методов.

 MYDRAGRESIZEPANEL = Ext.extend(Ext.Panel,{
    // private
                initEvents: function () {
                    **MYDRAGRESIZEPANEL.superclass.constructor.call(this);**
                    if (this.draggable) {
                        this.initDraggable();
                    }
                    this.resizer = new Ext.Resizable(this.el, {
                        animate: true,
                        duration: '.6',
                        easing: 'backIn',
                        handles: 'all',
                        pinned: false,
                        transparent: true
                    });
                    this.resizer.on("resize", this.onResizer, this);
                },
                onResizer: function (oResizable, iWidth, iHeight, e) {
                    this.setHeight(iHeight);
                    this.setWidth(iWidth);
                }
});