Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Как переисовать содержимое окна ? (https://javascript.ru/forum/extjs/28752-kak-pereisovat-soderzhimoe-okna.html)

unet900 01.06.2012 15:00

Как переисовать содержимое окна ?
 
http://clip2net.com/s/1ZhNP вот такая щас картинка
а мне надо чтобы после клика по кнопке выводил вместо текстарии что нибудь другое.
Такой код а как в зависимости от действий перерисовать содержимое окошка ?
Ext.define('Cabinet.view.Requester', {
  extend: 'Ext.panel.Panel',
  alias: 'widget.requester',
  frame: true,
  closable: true,
  collapsible: true,
  animCollapse: true,
  maxHeight: 1500,
  minWidth: 300,
  draggable: true,
  resizable: true,
  autoHeight: true,
  style: 'border-radius: none;',
  bodyStyle: {

  },


  initComponent: function(){

        var width = Math.round(Ext.getCmp('usersViewport').getWidth()/2)-10;

        var form = Ext.create('Ext.form.Panel', {
          frame: true,
          bodyPadding: 10,
          border: false,
          bodyBorder: false,
          buttonAlign: 'left',
          items: [
            {
              xtype: 'textfield',
              html: '<b>Прошу предоставить:</b>'
            },
            {
              xtype: 'textarea',
              anchor: '100%',
              height: 170
            }
          ],
          buttons: [
            {
              text: 'Направить запрос',
              handler: function() {

              }
            },
            {
              text: 'Архив запросов',
              handler: function() {
                Ext.create("Cabinet.view.RequestArch").show();
              }
            }
          ]
        });

        Ext.applyIf(this, {
            width : width,
            height: 300,
            bodyPadding: 6,
            title : "Запрос информации у менеджера",
            layout : 'fit',
            items : [
              form
            ]
        });

        this.callParent(arguments);
    },
    beforeclose : function() {

    }
});

nekto_O 01.06.2012 17:12

Цитата:

Сообщение от unet900
перерисовать

что значит "перерисовать"?

unet900 01.06.2012 17:26

Цитата:

Сообщение от nekto_O (Сообщение 178002)
что значит "перерисовать"?

http://clip2net.com/s/1ZhNP вот такая щас картинка
а мне надо чтобы после клика по кнопке выводил вместо текстарии что нибудь другое.

nekto_O 01.06.2012 18:24

http://docs.sencha.com/ext-js/4-1/#!...hod-setVisible

unet900 01.06.2012 18:53

Цитата:

Сообщение от nekto_O (Сообщение 178002)
что значит "перерисовать"?

Цитата:

Сообщение от nekto_O (Сообщение 178029)

Я похоже опять объяснил всё не так )
В общем надо сделать чтобы щелкнул архив голосований весь блок с формой и кнопками исчез и на его место встал контент с grid от голосований. Щелкнул коментировать встал контент для коментов и т.д.
Или я могу просто ставить свойства скрыть и на те или иные объекты и всё?
буду рад если покажете на примере кода как сделать

nekto_O 01.06.2012 22:26

Цитата:

Сообщение от unet900
Или я могу просто ставить свойства скрыть и на те или иные объекты и всё?

именно так, это как 1 из вариантов.
<!DOCTYPE html>
<html>
<head>
    <title>demo</title>
    <script src='http://dev.sencha.com/deploy/ext-4.0.7-gpl/ext-all.js'></script>
    <link rel="stylesheet" href="http://dev.sencha.com/deploy/ext-4.0.7-gpl/resources/css/ext-all.css">
    <script>

Ext.onReady(function() {

Ext.define('A', {
    extend: 'Ext.Window',
    initComponent: function() {
        var cmp1 = {
                xtype: 'textfield',
                fieldLabel: 'textfield'
            },
            cmp2 = {
                xtype: 'trigger',
                hidden: true,
                fieldLabel: 'trigger'
            },
            frm = Ext.create('Ext.form.Panel', {
                items: [cmp1,cmp2],               
                defaults: {
                    labelAlign: 'right',
                    labelWidth: 70
                },
                frame: true
            });
        
        Ext.apply(this, {
            autoHeight: true,
            closable: false,
            border: false,
            items: [frm],
            buttonAlign: 'left',
            buttons: [{
                text: 'textfield',
                handler: this.setActiveCmp.bind(this)
            }, {
                xtype: 'tbfill'
            }, {
                text: 'trigger',
                handler: this.setActiveCmp.bind(this)
            }]
        });
        
        this.callParent(arguments);
    },
    setActiveCmp: function(b) {
        var fields = this.down('form').getForm().getFields();
        fields.each(function(f) {
            f.setVisible(f.xtype == b.getText())
        });
    }
});

Ext.create('A', {
    title: 'demo'
}).show();

});                    
 
    </script>
</head>
  <body></body>
</html>

unet900 03.06.2012 20:30

А откуда демка вобще оч нехватает примеров как сделать то или иное есть кукбук от 3й версии но там не всё работает ((в 4й

nekto_O 03.06.2012 20:52

Цитата:

Сообщение от unet900
А откуда демка вобще оч нехватает примеров

демку сам слепил наскоро, примеров много тут

Deff 03.06.2012 22:30

unet900,
1. Вы выложите ccылку на полномасштабную HTML страницу со всеми не скрытыми элементами
2. На скриншоте - укажите какому блоку - соответствует какая кнопка открытия: - каждый скрываемый блок обведите скрине рамкой и протяните стрелку к кнопке
Скрыть - делов то


Часовой пояс GMT +3, время: 01:40.