Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Динамически изменить Тулбар в Grid (https://javascript.ru/forum/extjs/39815-dinamicheski-izmenit-tulbar-v-grid.html)

demi 13.07.2013 06:57

Динамически изменить Тулбар в Grid
 
у меня есть таблица,
ее содержимое и поля меняются с помощью grid.reconfigure
а как при этом поменять tbar ?

пробовал так
есть ТБар
tb = new Ext.toolbar.Toolbar({
		items : [ 
		  {
           text: 'Добавить документ',
			itemId: 'new',
			icon: 'ext/resources/ext-theme-classic/images/dd/drop-add.gif',
            handler: function(){
		...
            }
        },
          {
            itemId: 'delete', // id кнопки, потом пригодится
            text: 'Удалить',
			
			icon: 'ext/resources/ext-theme-classic/images/dd/drop-no.gif',
			
            handler: function(){
             ..
        }
      ]		
});

Есть таблица , в ней добавляю tbar
var grid_podacha = Ext.create('Ext.grid.Panel', {
	   columnLines: true,
		store: store_podacha, 
		click_to_edit:2,	
		border : 1,
        columns: col_grid_podacha,
        height: 600,
        width: '100%',
        title: 'Документы подача вагонов',
       // renderTo: 'grid9',
	   handler: function(grid, rowIndex, colIndex) {
                   // var rec = grid.getStore().getAt(rowIndex);
				   
                    alert(colIndex);
                },
        bbar: Ext.create('Ext.PagingToolbar', {
...
			
        }),
		tbar: tb
    });


Как можно вставить в tbar допустим tb2?

FireVolkhov 13.07.2013 14:43

Если tb2 при старте определен, то можно поступить так:
...
tbar: [
   {
       xtype: 'tbar-1'
    },
   {
       xtype: 'tbar-2',
       hidden: true
    }
]
...


И в контроллере выполнить:
tbar1.hide();
tbar2.show();


Если тебе надо что-то динамически поменять в тбаре почитай тут:
Toolbar-method-add
Toolbar-method-remove
В начале статьи есть пример.

demi 13.07.2013 17:20

Цитата:

Сообщение от FireVolkhov (Сообщение 262065)
Если tb2 при старте определен, то можно поступить так:
...
tbar: [
   {
       xtype: 'tbar-1'
    },
   {
       xtype: 'tbar-2',
       hidden: true
    }
]
...




И в контроллере выполнить:
tbar1.hide();
tbar2.show();


Если тебе надо что-то динамически поменять в тбаре почитай тут:
Toolbar-method-add
Toolbar-method-remove
В начале статьи есть пример.

а что должно быть в параметре у remove?

FireVolkhov 13.07.2013 18:45

Функция add возвращает объект, который был добавлен.
В функцию remove кидаешь объект или id объекта.
a = tbar.add( '-' );  // добавит separator
tbar.remove( a );     // удалит separator
tbar.remove( a.id );  // тоже самое
tbar.removeAll();     // удалит все элементы

demi 23.07.2013 08:44

спасибо, ))


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