23.07.2013, 10:22
|
Новичок на форуме
|
|
Регистрация: 22.07.2013
Сообщений: 9
|
|
Ссылки на разные вкладки в Tab Panel
Имеется ExtJS Tab Panel Панель с вкладками. Нужно сделать ссылки с разных мест на разные вкладки в этой панели.
Не очень понимаю как это делается. Вроде нужно передавать параметр. Но как это делается и что там откуда берется тоже плохо понимаю.
Буду рада всем комментариям. Изучаю ExtJs около месяца.
|
|
23.07.2013, 14:36
|
Новичок на форуме
|
|
Регистрация: 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.
|
|
23.07.2013, 14:45
|
Профессор
|
|
Регистрация: 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();
|
|
23.07.2013, 15:19
|
Новичок на форуме
|
|
Регистрация: 22.07.2013
Сообщений: 9
|
|
Сообщение от skrudjmakdak
|
хочу сразу огорчить, что такого быть не может:
|
ну да написано как-то непонятно. Но это не мой код работаю над ним неделю. Надо сделать ссылки с другой формы на разные вкладки на этой панели.
|
|
23.07.2013, 15:40
|
Профессор
|
|
Регистрация: 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>
|
|
23.07.2013, 15:52
|
Новичок на форуме
|
|
Регистрация: 22.07.2013
Сообщений: 9
|
|
Тут на вкладке 1 кнопка при нажатии которой становится активной вкладка 2? я правильно понимаю?
У меня другая задача, у меня есть форма и при нажатии например, "количество ответов" должна открываться вкладка № 2 на панели.
Вроде можно передать параметр по ссылке, например ".../tab/2". Но что дальше делать?
|
|
23.07.2013, 15:58
|
Профессор
|
|
Регистрация: 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>
|
|
23.07.2013, 16:32
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
ии?? суть та осталась.
есть форма. там есть "Получено ответов от поставщика", оборачивайте в тэг <a> навешивайте событие клик. при клике показывается ваша панель: name_tabpanel.show(); и открывается нужная вкладка как я уже показывал: name_tabpanel.setActiveTab(number);
|
|
|
|