#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);
}
});