Ext. tab. Panel tab of ExtJs4 notes, and extjs4 learning notes

Source: Internet
Author: User

Ext. tab. Panel tab of ExtJs4 notes, and extjs4 learning notes

This topic describes the tab controls.

1. Basic Tab

First, we define a basic Tab control. Each Tab has its own differences. The main content of the Tab can be obtained in three ways:

1. Basic Methods:By defining html and items.

2. Read Other html information:By setting contentEl, you can obtain other html information as the current tab body.

3. Read server data:Get server data asynchronously by defining autoLoad.

In addition, you can set whether to close each tab, the event when entering the tab, and whether the tab is available. For details, see the code: carefully developed the UI front-end framework for five years!

<H1> basic tab  

// 1. basic tab var tabs1 = Ext. createWidget ('tabpanel ', {renderTo: "tabpanel", activeTab: 1, // specify the default activity tab width: 600, height: 120, plain: true, // True indicates that there is no background image on the tab candidate bar (false by default) enableTabScroll: true, // if there are too many tabs, you can scroll ults: {autoScroll: true}, items: [{id: "tab1", title: 'common tab', html: "This is just a very common Tab. ", Items: [{xtype: 'button ', text:' button '}], closable: true // This tab can be closed}, {id:" tab2 ", title: 'content to div ', contentEl: 'onetab' // specifies the html element from which the current tab body is read.}, {id: "tab3", title: 'ajax tab', autoLoad: {url: 'ajaxtabcontent', params: {data: "parameters passed from the client"}, method: 'get' }}, {id: "tab4", title: 'event tab', listeners: {activate: handleActivate}, html: "Tab with event. "}, {Id:" tab5 ", title: 'unavailable tab', disabled: true, html:" unavailable Tab, you cannot see me. "}]}); // Click the event function handleActivate (tab) {alert (tab. title + ': activated event triggered after tab4. ');}
 

Let's take a look at the generated tab effect: a 5-year UI front-end framework is carefully developed!

Ii. Operation Tab

After a tab is generated, we can use js to operate on it, such as dynamically adding, deleting, and inserting tabs, and setting activity tabs. Let's take a look at the specific implementation method:

<H1> operation tab  

Var index = 0; // Add a TabExt. createWidget ("button", {text: "adding a Tab", renderTo: 'content2', handler: function () {tabs1.add ({title: 'New tab' + (++ index), id: "newTab" + index, html: 'tab text part' + (index) + '<br/>', closable: true}) ;}}; // insert a TabExt. createWidget ("button", {text: "Insert a new Tab at location 2", renderTo: 'content2', handler: function () {tabs1.insert (2, {title: 'New tab' + (++ index), id: "newTab" + index, html: 'tab text part' + (index) + '<br/>', closable: true}) ;}}; // delete a TabExt. createWidget ("button", {text: "Delete the Tab at location 2", renderTo: 'content2', handler: function () {tabs1.remove (2 );}}); // Delete the TabExt with the id "tab1. createWidget ("button", {text: "Delete the Tab with id" tab1 "", renderTo: 'content2', handler: function () {tabs1.remove ("tab1") ;}}); // Delete the TabExt. createWidget ("button", {text: "set the third Tab as the active tab", renderTo: 'content2', handler: function () {tabs1.setActiveTab (2 );}
 

Effect: a 5-year UI front-end framework has been developed!

3. Click the tab button below

The default tab button is on the top. We can define the position of the tab button at will. The following Code demonstrates the specific usage:

<H1> the tab button is below  

// Click the tab button at the bottom of var tabs3 = Ext. createWidget ('tabpanel ', {renderTo: "content3", activeTab: 0, width: 600, height: 150, tabPosition: 'bottom' // specifies the position of the tab, left, right}); for (var I = 0; I <3; I ++) tabs3.add ({title: 'tab' + I, id: "Tabs3 _" + I, html: 'tab text part' + (index) + '<br/>', closable: true
 

Effect:

4. Drag tabs

Through the official extension package, we can enhance the ease-of-use of tab controls. For example, we can now implement the function of dragging the tab button:

<H1> detachable tab  

// First, dynamically load the ux extension jsExt. loader. setConfig ({enabled: true}); Ext. loader. setPath ('ext. ux ','/ExtJs/ux '); Ext. require (['ext. tip. quickTipManager ', 'ext. tab. panel ', 'ext. ux. tabScrollerMenu ', 'ext. ux. tabReorderer ', 'ext. ux. tabCloseMenu ', 'ext. ux. groupTabPanel ']); // The following is the function code. // you can drag the tab var tabs4 = Ext. createWidget ('tabpanel ', {renderTo: "content4", activeTab: 0, width: 600, height: 150, plugins: Ext. create ('ext. ux. tabReorderer '), items: [{xtype: 'panel', title: 'tab cannot be dragged ', html: "This tab cannot be dragged", reorderable: false, closable: true}]}); for (var I = 0; I <3; I ++) tabs4.add ({title: 'tab' + I, id: "Tabs4 _" + I, html: 'tab text part' + (index) + '<br/>'
 


The following figure shows that a tab has been moved:

5. menu display with too many tabs

If the tabs on the panel are too open to be displayed, You need to display the overflow tabs in the menu mode. The implementation method is as follows. Pay attention to introducing the extended css style: well-developed 5-year UI front-end framework!

<H1> menu display with too many tabs  

// When too many tabs overflow, The Menu displays var tabs5 = Ext. createWidget ('tabpanel ', {renderTo: "content5", activeTab: 0, width: 600, height: 150, plugins: Ext. create ('ext. ux. tabScrollerMenu ', {maxText: 15, pageSize: 5}), items: [{title: 'tab0', html: 'First tab'}]}); Ext. defer (function () {var myTabs = []; for (var I = 0; I <15; I ++) {myTabs. push ({title: 'tab' + I, id: "Tabs5 _" + I, html: 'tab text part' + (index) + '<br/>'});} tabs5.add (myTabs);}, 1000 );
 

Effect:

6. Right-click a tab

Generally, you can right-click the tab button to close additional tabs. You can also do this in ext. The implementation method is as follows:

<H1> right-click the tab  

// Right-click the tab and choose var currentItem; var tabs6 = Ext. createWidget ('tabpanel ', {renderTo: "content6", activeTab: 0, width: 600, height: 150, plugins: Ext. create ('ext. ux. tabCloseMenu ', {closeTabText: 'close current', closeOthersTabsText: 'close others', closeAllTabsText: 'close all ', extraItemsTail: ['-', {text: 'close ', checked: true, hideOnClick: true, handler: function (item) {currentItem. tab. setClosable (item. checked) ;}}], listeners: {aftermenu: function () {currentItem = null ;}, beforemenu: function (menu, item) {var menuitem = menu. child ('* [text = ""]'); currentItem = item; menuitem. setChecked (item. closable) ;}}), items: [{title: 'tab1', html: 'First tab'}, {title: 'tab2', closable: true, html: 'Second tab'}, {title: 'tab3', closable: true, html: 'Third tab'}]});
 

Effect:

VII. Grouping Tab

We can also group tabs as follows: a 5-year UI front-end framework is carefully developed!

<H1> grouping tab  

// Grouping tab var tabs7 = Ext. create ('ext. ux. groupTabPanel ', {activeGroup: 0, // sets the current activity group items: [{expanded: false, mainItem: 1, // sets the main item, this tab is displayed in folders at the top. Items: [{title: 'Project 1', html: "<B> the first body of the first item in the first group. </B> "},{ title: 'Project 2', border: false, html:" <B> the second body of the first group. </B> "},{ title: 'Project 3', border: false, html:" <B> the third body of the first group. </B> "}] },{ expanded: true, items: [{title: 'Project 1', html:" <B> the first body of the second group. </B> "},{ title: 'Project 2', html:" <B> the second body of the second group. </B> "}]}); Ext. create ('ext. panel ', {renderTo: "content7", width: 600, height: 250, collapsible: true, layout: 'fit', title: 'group tab demo', items: tabs7 });
 

Effect:



I added the encapsulated Extjs encapsulated controls to VS. Now I use TabContainer and TabPanel in combination. Static addition tabs can be

Didn't you introduce extjs js! Check whether the path is correct!
 
How can I drag the tab position on the tabpanel of extjs?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.