2014-10-17 7 views
0

Я работаю над приложением, где мое требование заключается в разработке следующих экранов:ExtJS4: используйте панель, окно или контейнер?

  1. Добавить экран ввода информации пользователя (форма панели)
  2. Подробнех экран для отображения пользовательского ввода (панели сетки)
  3. Редактирование экрана для редактирования ввода пользователя (не уверен, что он должен быть формой или окном).

У меня есть прослушиватель «itemdblclick» для панели сетки. Поэтому, когда пользователь дважды щелкает по строке сетки, экран редактирования должен открыться с подробностями, заполненными полями.

Я хочу использовать общий класс для добавления и редактирования экранов, Но проблема здесь в том, Если я удлинить окно, на экране редактирования появляется, но не добавить экран В то время как если я удлинить панель, затем экран добавить открывает, но экран редактирования не появляется ..

Ext.define('ELM.view.cl.Edit',{     
extend:'Ext.window.Window', 
... 

Ext.define('ELM.view.cl.Edit',{ 
extend : 'Ext.form.Panel', 
... 

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

Насколько я знаю, вероятно, tabpanel не может иметь окно в качестве дочернего компонента.

Пожалуйста, сообщите мне, что здесь не так? Должен ли я расширять «контейнер» вместо этого и может указывать «formpanel» и «window» в другом месте. ? Как я могу достичь своих требований? Любые ссылки помогут ..

Заранее спасибо

+0

Можете ли вы поделиться немного больше кода, так что я могу понять, что на самом деле происходит? Позвольте мне увидеть обработчик события itemdblclick и определения вашего класса для «ELM.view.cl.Edit» –

+2

Для максимального повторного использования вы можете создать класс, который является панелью формы. Затем вы можете использовать это для экранов добавления и редактирования. В качестве панели форма может быть добавлена ​​как элемент в окно, вкладка панели вкладок, дочерний элемент другой панели и т. Д. – existdissolve

ответ

0

Я решил эту проблему, определив форму, проходящую в форме панель:

Ext.define('ELM.view.cl.Edit',{ 
extend : 'Ext.form.Panel', 
alias: 'widget.cledit', 
... 

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

Ext.define('ELM.view.cl.EditWindow',{     
    extend:'Ext.window.Window', 
    items: [ 
      { 
      xtype: 'cledit' 
      } 
     ] 
}); 

Надеюсь, что это может помочь кому-то :)

Смежные вопросы