Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.10.2014, 08:51
Новичок на форуме
Отправить личное сообщение для le2x Посмотреть профиль Найти все сообщения от le2x
 
Регистрация: 16.10.2014
Сообщений: 6

Window с разным содержимым
Прошу помощи. Есть окно window у которого есть панель управления. Как сделать так чтобы по нажатию кнопки на панели в окне открылась таблица? А если таблиц несколько нужно показывать при нажатии на разные кнопки в тулбаре как быть?

код приложения:
Ext.onReady(function()
	{
	
		  /**********************/
		 /* Таблица Сотрудники */
		/**********************/
		var store = Ext.create('Ext.data.JsonStore', 
			{
				fields:['id','F','I','O','Job'],
				PageSize:10,
				autoLoad: true,
				proxy:
					{
						type:'ajax',
						url:'php2.php?func=1',
						reader:
							{
								type: 'json',
								root: 'table'
							}
					}
			});
		
		var grid1 = Ext.create('Ext.grid.Panel', 
			{
				title: 'Справочник сотрудников',
				store: store,
				columns:
					[
						{text:'№', dataIndex:'id', width:50},
						{text:'Фамилия', dataIndex:'F', width:150},
						{text:'Имя', dataIndex:'I', width: 150},
						{text:'Отчество', dataIndex:'O', width: 150},
						{text:'Подразделение', dataIndex:'Job', width: 350},
					],
				/* Нижний тулбар таблицы*/
				bbar: new Ext.PagingToolbar(
					{
						store: store,
						displayInfo: true,
						displayMsg: 'Показано  {0} - {1} из {2}'
					})

			});
		
		
		  /***************************/
		 /* Главное окно приложения */
		/***************************/
		var win1 = Ext.create('widget.window', 
			{
				title:'Рыжая база v.1.0b',
				html:'',
				autoShow:true,
				closable:false,
				resizable:false,
				draggable:false,
				maximized:true,
				layout: 'border',
				//items:[{region: 'north',xtype: 'panel',html: 'North',height:'100%',items[grid1]}],
				
				tbar:
					[
						{text:'Регистрация', handler: function(){alert('Функция пока не работает')}},'-',
						{text:'Справочники',
							menu:
								[
									{text: 'Сторонние организации', handler: function(){win1.update(win1.items.html = grid1)}},
									{text: 'Сотрудники', handler: function(){win1.update(html='1')}},
									{text: 'Исполнители', handler: function(){alert('Функция пока не работает')}},
									{text: 'Местонахождения', handler: function(){alert('Функция пока не работает')}},
									{text: 'Носители', handler: function(){alert('Функция пока не работает')}},
									{text: 'Типы документов', handler: function(){alert('Функция пока не работает')}},
									{text: 'Наименования внутренних документов', handler: function(){alert('Функция пока не работает')}},
									{text: 'На кого распространяются', handler: function(){alert('Функция пока не работает')}}
								]
						},'-',
						{text:'Выбор организации', handler: function(){alert('Функция пока не работает')}},'-',
						{text:'Сервис',
							menu:
								[
									{text: 'Экспорт журналов в MS Excel', handler: function(){alert('Функция пока не работает')}},
									{text: 'Организации', handler: function(){alert('Функция пока не работает')}},
									{text: 'Пользователи', handler: function(){alert('Функция пока не работает')}},
									{text: 'О Программе', handler: function(){alert('Программа разработана сотрудниками сектора программного обеспечения ')}}
								]
						},'-',
						{text:'Выход', handler: function(){alert('Если вы хотите выйти то просто закройте браузер :-))')}}
						
					],
					
				bbar:[{text:'Нижний тулбар'}],
				
			}); 
		
		
		
	});
Ответить с цитированием
  #2 (permalink)  
Старый 16.10.2014, 11:22
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

Например, использовать в окне card layout и переключаться на нужную карту по кнопке.
Ответить с цитированием
  #3 (permalink)  
Старый 16.10.2014, 12:28
Новичок на форуме
Отправить личное сообщение для le2x Посмотреть профиль Найти все сообщения от le2x
 
Регистрация: 16.10.2014
Сообщений: 6

как в layout засунуть grid?
Ответить с цитированием
  #4 (permalink)  
Старый 16.10.2014, 13:03
Новичок на форуме
Отправить личное сообщение для le2x Посмотреть профиль Найти все сообщения от le2x
 
Регистрация: 16.10.2014
Сообщений: 6

С этим разобрался

layout: 'card',
				items:
					[
						{xtype: 'panel',html: ''},
						{xtype: 'panel', items:[grid1]},
						{xtype: 'panel',html: '3'},
					],


Как теперь переключаться между нужными слайдами?
Ответить с цитированием
  #5 (permalink)  
Старый 16.10.2014, 13:24
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

вот неплохой пример:
http://docs.sencha.com/extjs/4.2.2/e...t-browser.html

panel.getLayout().setActiveItem(item);

Последний раз редактировалось skrudjmakdak, 16.10.2014 в 13:27.
Ответить с цитированием
  #6 (permalink)  
Старый 16.10.2014, 14:30
Новичок на форуме
Отправить личное сообщение для le2x Посмотреть профиль Найти все сообщения от le2x
 
Регистрация: 16.10.2014
Сообщений: 6

Огромное Вам спасибо! У меня все получилось.

Вот кусок кода:

layout: 'card',
				activeItem: 0,
				items:
					[
						{id:'0', xtype:'panel', html: '0'},
						{id:'1', xtype:'panel', items:[grid1]},
						{id:'2', xtype:'panel', html: '2'},
					],
				
				tbar:
					[
						{text:'Регистрация', handler: function(){alert('Функция пока не работает')}},'-',
						{text:'Справочники',
							menu:
								[
									{text: 'Сторонние организации', handler: function(){win1.getLayout().setActiveItem('1')}},
									{text: 'Сотрудники', handler: function(){win1.getLayout().setActiveItem('2')}},
									{text: 'Исполнители', handler: function(){win1.getLayout().setActiveItem('0')}},
Ответить с цитированием
  #7 (permalink)  
Старый 16.10.2014, 17:46
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

Мне кажется, у вас есть избыточная вложенность. Вместо
{id:'1', xtype:'panel', items:[grid1]}

можно просто написать grid1:

{id:'0', xtype:'panel', html: '0'},
grid1,
{id:'2', xtype:'panel', html: '2'}

Еще момент - рекомендуется юзать itemtId вместо id если данный компонент не должен быть доступен глобально по всему приложению. А если таки должен, то с большой вероятностью у вас проблема с архитектурой.
Ответить с цитированием
  #8 (permalink)  
Старый 17.10.2014, 08:14
Новичок на форуме
Отправить личное сообщение для le2x Посмотреть профиль Найти все сообщения от le2x
 
Регистрация: 16.10.2014
Сообщений: 6

Сообщение от Infarch Посмотреть сообщение
можно просто написать grid1:
Просто grid1 не заработало, к сожалению

Сообщение от Infarch Посмотреть сообщение
Еще момент - рекомендуется юзать itemtId вместо id
c itemid тоже не работает.
Ответить с цитированием
  #9 (permalink)  
Старый 17.10.2014, 14:53
Аватар для Infarch
Профессор
Отправить личное сообщение для Infarch Посмотреть профиль Найти все сообщения от Infarch
 
Регистрация: 06.06.2014
Сообщений: 292

А что именно не заработало? Рискну предположить что при создании грида вы не описали его айди, и теперь не можете его активировать: win1.getLayout().setActiveItem('1'). Напишите тогда в нем itemId: 1. Или не создавайте грид где то в другом месте, используйте конфиг по полной программе:

{id:'0', xtype:'panel', html: '0'},
{itemId: "1", xtype:"gridpanel", ...},
{id:'2', xtype:'panel', html: '2'}
Ответить с цитированием
  #10 (permalink)  
Старый 20.10.2014, 08:41
Новичок на форуме
Отправить личное сообщение для le2x Посмотреть профиль Найти все сообщения от le2x
 
Регистрация: 16.10.2014
Сообщений: 6

Да вы были абсолютно правы, я не присвоил itemId и grid1 стал вызываться, благодарю за помощь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
window.home() Telnet Javascript под браузер 3 08.08.2013 15:03
Переменная через var тоже является свойством объекта window? lancer Общие вопросы Javascript 6 28.07.2013 14:21
Заполнение html-формы определённым содержимым mrpersona Общие вопросы Javascript 2 06.05.2013 12:02
лайтбокс с ajax содержимым LRCenter AJAX и COMET 2 07.07.2011 12:34
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 13:20