Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.07.2013, 10:22
zed zed вне форума
Новичок на форуме
Отправить личное сообщение для zed Посмотреть профиль Найти все сообщения от zed
 
Регистрация: 22.07.2013
Сообщений: 9

Ссылки на разные вкладки в Tab Panel
Имеется ExtJS Tab Panel Панель с вкладками. Нужно сделать ссылки с разных мест на разные вкладки в этой панели.
Не очень понимаю как это делается. Вроде нужно передавать параметр. Но как это делается и что там откуда берется тоже плохо понимаю.
Буду рада всем комментариям. Изучаю ExtJs около месяца.
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2013, 12:43
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

Сообщение от zed Посмотреть сообщение
Имеется ExtJS Tab Panel Панель с вкладками.
мы очень рады) а код то где?

вот официальная документация
http://docs.sencha.com/extjs/4.2.1/#.../tabs-adv.html
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2013, 14:36
zed zed вне форума
Новичок на форуме
Отправить личное сообщение для zed Посмотреть профиль Найти все сообщения от zed
 
Регистрация: 22.07.2013
Сообщений: 9

Ext.define('Application.components.RequestTabPanel', {
  extend: 'Ext.TabPanel',
  initComponent: function() {
  var component = this;

  var RequestPanel = {
    xtype: 'Application.components.RequestGrid',
    parent: component,
    title: 'Запросы на разъяснение',
    optype: 'request',
    closable: false
  };

  var ResponsePanel = {
    xtype: 'Application.components.RequestGrid',
    parent: component,
    title: 'Ответы на запросы',
    optype: 'response',
    closable: false
  };

  var RejectPanel = {
    xtype: 'Application.components.RequestGrid',
    parent: component,
    title: 'Отклоненные запросы',
    optype: 'rejected',
    closable: false
  };

  Ext.apply(RequestPanel, component.requestGridParams);
  Ext.apply(ResponsePanel, component.requestGridParams);
  Ext.apply(RejectPanel, component.requestGridParams);

  Ext.apply(this, {
    activeTab: 0,
    enableTabScroll:false,
    border: false,
    items: [
      RequestPanel,
      ResponsePanel,
      RejectPanel
    ]
  });
  Application.components.RequestTabPanel.superclass.initComponent.call(this);
  }
});

вкладки сделаны по шаблону одному и тому же Application.components.RequestGrid, его надо приводить или нет? а то сильно длинный.

Вот как открыть ссылкой вкладку №2. У них у все url одинаковый.
Проект сделан на Zend Framwork 1.12.3 и ExtJs точно не знаю какой но больше 4 )

Последний раз редактировалось zed, 23.07.2013 в 14:41.
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2013, 14:45
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

хочу сразу огорчить, что такого быть не может:
var ResponsePanel = {
    xtype: 'Application.components.RequestGrid',
    parent: component,
    title: 'Ответы на запросы',
    optype: 'response',
    closable: false
  };

  var RejectPanel = {
    xtype: 'Application.components.RequestGrid',
    parent: component,
    title: 'Отклоненные запросы',
    optype: 'rejected',
    closable: false
  };

вы 3 раза инициализируйте одну переменную.
сделайте функцию и вызывайте ее сколько вам надо:
function getItemTab()
	{
	return {
		xtype: 'Application.components.RequestGrid',
		parent: component,
		title: 'Отклоненные запросы',
		optype: 'rejected',
		closable: false
		};
	}

var RejectPanel1 = getItemTab();
var RejectPanel2 = getItemTab();
var RejectPanel3 = getItemTab();
Ответить с цитированием
  #5 (permalink)  
Старый 23.07.2013, 15:19
zed zed вне форума
Новичок на форуме
Отправить личное сообщение для zed Посмотреть профиль Найти все сообщения от zed
 
Регистрация: 22.07.2013
Сообщений: 9

Сообщение от skrudjmakdak Посмотреть сообщение
хочу сразу огорчить, что такого быть не может:
ну да написано как-то непонятно. Но это не мой код работаю над ним неделю. Надо сделать ссылки с другой формы на разные вкладки на этой панели.
Ответить с цитированием
  #6 (permalink)  
Старый 23.07.2013, 15:40
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

оно???:
<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
	<script type="text/javascript" src="js/ext-4.2.1.883/ext-all.js"></script>
	<link rel="stylesheet" type="text/css" href="ext-4.2.1.883/resources/css/ext-all.css">
    <script type="text/javascript">
Ext.onReady(function() {

var tabs = Ext.widget('tabpanel',
	{
	renderTo: Ext.getBody(),
	resizeTabs: true,
	enableTabScroll: true,
	width: 300,
	height: 250,
	items: [
		{
		title: 'Tab 1',
		iconCls: 'tabs',
		items: [
			{
			xtype: 'button',
			text: 'click me',
			handler: function()
				{
				tabs.setActiveTab(1);
				}
			}]
		},
		{
		title: 'Tab 2',
		iconCls: 'tabs',
		html: 'Tab Body2222<br/><br/>'
		},
		{
		title: 'Tab 3',
		iconCls: 'tabs',
		html: 'Tab Body3333<br/><br/>'
		}]
	});
	
});
    </script>
  </body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 23.07.2013, 15:52
zed zed вне форума
Новичок на форуме
Отправить личное сообщение для zed Посмотреть профиль Найти все сообщения от zed
 
Регистрация: 22.07.2013
Сообщений: 9

Тут на вкладке 1 кнопка при нажатии которой становится активной вкладка 2? я правильно понимаю?
У меня другая задача, у меня есть форма и при нажатии например, "количество ответов" должна открываться вкладка № 2 на панели.

Вроде можно передать параметр по ссылке, например ".../tab/2". Но что дальше делать?
Ответить с цитированием
  #8 (permalink)  
Старый 23.07.2013, 15:58
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

так?
<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
	<script type="text/javascript" src="js/ext-4.2.1.883/ext-all.js"></script>
	<link rel="stylesheet" type="text/css" href="ext-4.2.1.883/resources/css/ext-all.css">
    <script type="text/javascript">
var openTab;
Ext.onReady(function() {

openTab = function (number)
	{
	tabs.setActiveTab(number);
	}

var tabs = Ext.widget('tabpanel',
	{
	renderTo: Ext.getBody(),
	resizeTabs: true,
	enableTabScroll: true,
	width: 300,
	height: 250,
	items: [
		{
		title: 'Tab 1',
		iconCls: 'tabs',
		html: '<a href="#" onclick="openTab(1);">открыть вторую вкладку, епта!!</a><br/><br/>'
		},
		{
		title: 'Tab 2',
		iconCls: 'tabs',
		html: 'Tab Body2222<br/><br/>'
		},
		{
		title: 'Tab 3',
		iconCls: 'tabs',
		html: 'Tab Body3333<br/><br/>'
		}]
	});
	
});
    </script>
  </body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 23.07.2013, 16:20
zed zed вне форума
Новичок на форуме
Отправить личное сообщение для zed Посмотреть профиль Найти все сообщения от zed
 
Регистрация: 22.07.2013
Сообщений: 9

я наверное не понятно объяснила задачу.
у меня есть форма http://gyazo.com/a67a5159032da950087bd84d7c907c28 скриншот части формы. При нажатии на "Получено ответов от поставщика" должна открываться панель http://gyazo.com/3c732aba27ceec42cee675fa57745e36 вторая вкладка "Ответы на запросы"
А url у всех трех вкладок одинаковый #com/procedure/requestappliclist

Последний раз редактировалось zed, 23.07.2013 в 16:24.
Ответить с цитированием
  #10 (permalink)  
Старый 23.07.2013, 16:32
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

ии?? суть та осталась.
есть форма. там есть "Получено ответов от поставщика", оборачивайте в тэг <a> навешивайте событие клик. при клике показывается ваша панель: name_tabpanel.show(); и открывается нужная вкладка как я уже показывал: name_tabpanel.setActiveTab(number);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создавать вкладки для Tab Panel в ExtJS 4 Bkmz_1_ ExtJS 1 02.12.2011 03:57
Разные изображения - разные ссылки sunrec Общие вопросы Javascript 13 20.11.2011 22:00