Extjs与Xtype组件对应列表

核心提示:我们在使用 ExtJs 创建组件时最容易理解的当然是用 new Ext.form.TextField({fieldLabel:'姓名', id:'name',width:120});我们还可以直接用 xtype(比如 TextField 对应的 xtype 是 textfield) 的对象形式来创建组件,比如在面板的 items 属性中,尤其是多个
我们在使用 ExtJs 创建组件时最容易理解的当然是用
 
new Ext.form.TextField({fieldLabel:'姓名', id:'name',width:120});

我们还可以直接用 xtype(比如 TextField 对应的 xtype 是 textfield) 的对象形式来创建组件,比如在面板的 items 属性中,尤其是多个组件或需要写许多的 ExtJs 相关代码时就更值得推荐。我们来对照如下形式就知道了:

  1. items[    
  2.   
  3. new Ext.form.TextField({fieldLabel:'姓名', id:'name', width:120}),    
  4.       
  5. new Ext.form.TextField({fieldLabel:'密码', id:'passwd', inputType:'password', width:120}),    
  6.       
  7. new Ext.form.DateField({fieldLabel:'生日', id:'birth', format:'Y年m月d日', width:120})    
  8. ]    
  9. //替换成用 xtype 写法就如下(似乎只是免去了很多的 new ...)    
  10. items[    
  11.        
  12. {xtype:'textfield', fieldLabel:'姓名', id:'name', width:120},    
  13.      
  14. {xtype:'textfield', fieldLabel:'密码', id:'passwd', inputType:'password', width:120},    
  15.       
  16. {xtype:'datefield', fieldLabel:'生日', id:'birth', format:'Y年m月d日', width:120}    
  17. ]  

写 ExtJs  相关代码多了就会用 xtype 的体会,下面是 ExtJs 中各组件的 xtype 与组件类的对应表。不包括 Ext.ux 命名空间中扩展的组件。其实在 Ext API 文档中有此列表,在 API 帮助中查找 Component 打该页面就能看到,即: http://www.extjs.com/deploy/dev/docs/output/Ext.Component.html

基本组件:
xtypeClass描述
buttonExt.Button按钮
splitbuttonExt.SplitButton带下拉菜单的按钮
cycleExt.CycleButton带下拉选项菜单的按钮
buttongroupExt.ButtonGroup编组按钮(Since 3.0)
sliderExt.Slider滑动条
progressExt.ProgressBar进度条
statusbarExt.StatusBar状态条,2.2加进来,3.0 又去了
colorpaletteExt.ColorPalette调色板
datepickerExt.DatePicker日期选择面板
 
容器及数据类组件
xtypeClass描述
windowExt.Window窗口
viewportExt.ViewPort视口,即浏览器的视口,能随之伸缩
boxExt.BoxComponent盒子组件,相当于一个 <div>
componentExt.Component组件
containerExt.Container容器
panelExt.Panel面板
tabpanelExt.TabPanel选项面板
treepanelExt.tree.TreePanel树型面板
flashExt.FlashComponent显示 Flash 的组件(Since 3.0)
gridExt.grid.GridPanel表格
editorgridExt.grid.EditorGridPanel可编辑的表格
propertygridExt.grid.PropertyGrid属性表格
editorExt.Editor编辑器
dataviewExt.DataView数据显示视图
listviewExt.ListView列表视图
 
工具栏组件:
xtypeClass描述
pagingExt.PagingToolbar分页工具条
toolbarExt.Toolbar工具栏
tbbuttonExt.Toolbar.Button工具栏按钮
tbfillExt.Toolbar.Fill工具栏填充区
tbitemExt.Toolbar.Item工具条项目
tbseparatorExt.Toolbar.Separator工具栏分隔符
tbspacerExt.Toolbar.Spacer工具栏空白
tbsplitExt.Toolbar.SplitButton工具栏分隔按钮
tbtextExt.Toolbar.TextItem工具栏文本项
 
菜单组件:
xtypeClass描述
menuExt.menu.Menu菜单
colormenuExt.menu.ColorMenu颜色选择菜单
datemenuExt.menu.DateMenu日期选择菜单
menubaseitemBaseItem 
menucheckitemExt.menu.CheckItem选项菜单项
menuitemExt.menu.Item 
menuseparatorExt.menu.Separator菜单分隔线
menutextitemExt.menu.TextItem文本菜单项
 
表单及表单域组件:
xtypeClass描述
formExt.FormPanel/Ext.form.FormPanel表单面板
checkboxExt.form.Checkbox多选框
comboExt.form.ComboBox下拉框
datefieldExt.form.DateField日期选择项
timefieldExt.form.TimeField时间录入项
fieldExt.form.Field表单字段
fieldsetExt.form.FieldSet表单字段组
hiddenExt.form.Hidden表单隐藏域
htmleditorExt.form.HtmlEditorHTML 编辑器
labelExt.form.Label标签
numberfieldExt.form.NumberField数字编辑器
radioExt.form.Radio单选按钮
textareaExt.form.TextArea多行文本框
textfieldExt.form.TextField表单文本框
triggerExt.form.TriggerField触发录入项
checkboxgroupExt.form.CheckboxGroup编组的多选框(Since 2.2)
displayfieldExt.form.DisplayField仅显示,不校验/不被提交的文本框
radiogroupExt.form.RadioGroup编组的单选按钮(Since 2.2)
 
图表组件:
xtypeClass描述
chartExt.chart.Chart图表组件
barchartExt.chart.BarChart柱状图
cartsianchartExt.chart.CartesianChart 
columnchartExt.chart.ColumnChart 
linechartExt.chart.LineChart连线图
piechartExt.chart.PieChart扇形图
 
数据集 Store:
xtypeClass描述
arraystoreExt.data.ArrayStore 
directstoreExt.data.DirectStore 
groupingstoreExt.data.GroupingStore 
jsonstoreExt.data.JsonStore 
simplestoreExt.data.SimpleStore 
storeExt.data.Store 
xmlstoreExt.data.XmlStore 

另外:关于 ExtJs 如何依据 xtype 创建对应组件这里只简单的说一句,ExtJs 的组件是通过 Ext.ComponentMgr 来管理的,组件类会以 xtype 为 key 注册到 ComponentMgr 中,用 xtype 形式时就通过 ComponentMgr 来创建 xtype 对应的组件。ComponentMgr 如何对组件进行管理下面会进一步深入探究。

假如想要获得 xtype 与组件最完整的列表,有两种办法:

1. ExtJs 运行后,遍历 ComponentMgr 的 types{} 哈稀属性,这个属性是私有的,需改源代使之为公有,存储结构为{button:Ext.Button, cycle:Ext.CycleButton}

2. 用 grep 从 ExtJs 源代码中搜寻出来。在组件的 JS 代码(如 Button.js) 中会用 Ext.reg('button', Ext.Button) 形式注册,所以下面我用移植到 Windows 上的 GNU grep 程序从源代码中扒出所有的 xtype 及对应的组件类来。

核心代码中的 xtype 组件

E:\Study ExtJS>grep -do Ext.reg\(' extjs3.0\src\*.js
extjs3.0\src\widgets\BoxComponent.js:Ext.reg('box', Ext.BoxComponent);
extjs3.0\src\widgets\BoxComponent.js  Ext.reg('spacer', Ext.Spacer);
extjs3.0\src\widgets\Button.js:Ext.reg('button', Ext.Button);
extjs3.0\src\widgets\ButtonGroup.js:Ext.reg('buttongroup', Ext.ButtonGroup);
extjs3.0\src\widgets\ColorPalette.js:Ext.reg('colorpalette', Ext.ColorPalette);
extjs3.0\src\widgets\Component.js:Ext.reg('component', Ext.Component);
extjs3.0\src\widgets\Container.js:Ext.reg('container', Ext.Container);
extjs3.0\src\widgets\CycleButton.js:Ext.reg('cycle', Ext.CycleButton);
extjs3.0\src\widgets\DataView.js:Ext.reg('dataview', Ext.DataView);
extjs3.0\src\widgets\DatePicker.js:Ext.reg('datepicker', Ext.DatePicker);
extjs3.0\src\widgets\Editor.js:Ext.reg('editor', Ext.Editor);
extjs3.0\src\widgets\PagingToolbar.js:Ext.reg('paging', Ext.PagingToolbar);
extjs3.0\src\widgets\Panel.js:Ext.reg('panel', Ext.Panel);
extjs3.0\src\widgets\ProgressBar.js:Ext.reg('progress', Ext.ProgressBar);
extjs3.0\src\widgets\Slider.js:Ext.reg('slider', Ext.Slider);
extjs3.0\src\widgets\SplitButton.js:Ext.reg('splitbutton', Ext.SplitButton);
extjs3.0\src\widgets\TabPanel.js:Ext.reg('tabpanel', Ext.TabPanel);
extjs3.0\src\widgets\Toolbar.js:Ext.reg('toolbar', Ext.Toolbar);
extjs3.0\src\widgets\Toolbar.js  Ext.reg('tbitem', T.Item);
extjs3.0\src\widgets\Toolbar.js  Ext.reg('tbseparator', T.Separator);
extjs3.0\src\widgets\Toolbar.js  Ext.reg('tbspacer', T.Spacer);
extjs3.0\src\widgets\Toolbar.js  Ext.reg('tbfill', T.Fill);
extjs3.0\src\widgets\Toolbar.js  Ext.reg('tbtext', T.TextItem);
extjs3.0\src\widgets\Toolbar.js  Ext.reg('tbbutton', T.Button);
extjs3.0\src\widgets\Toolbar.js  Ext.reg('tbsplit', T.SplitButton);
extjs3.0\src\widgets\Viewport.js:Ext.reg('viewport', Ext.Viewport);
extjs3.0\src\widgets\Window.js:Ext.reg('window', Ext.Window);
extjs3.0\src\widgets\tree\TreePanel.js:Ext.reg('treepanel', Ext.tree.TreePanel);
extjs3.0\src\widgets\menu\BaseItem.js:Ext.reg('menubaseitem', Ext.menu.BaseItem);
extjs3.0\src\widgets\menu\CheckItem.js:Ext.reg('menucheckitem', Ext.menu.CheckItem);
extjs3.0\src\widgets\menu\ColorMenu.js:Ext.reg('colormenu', Ext.menu.ColorMenu);
extjs3.0\src\widgets\menu\DateMenu.js: Ext.reg('datemenu', Ext.menu.DateMenu);
extjs3.0\src\widgets\menu\Item.js:Ext.reg('menuitem', Ext.menu.Item);
extjs3.0\src\widgets\menu\Menu.js:Ext.reg('menu', Ext.menu.Menu);
extjs3.0\src\widgets\menu\Separator.js:Ext.reg('menuseparator', Ext.menu.Separator);
extjs3.0\src\widgets\menu\TextItem.js:Ext.reg('menutextitem', Ext.menu.TextItem);
extjs3.0\src\widgets\list\ListView.js:Ext.reg('listview', Ext.ListView);
extjs3.0\src\widgets\grid\EditorGrid.js:Ext.reg('editorgrid', Ext.grid.EditorGridPanel);
extjs3.0\src\widgets\grid\GridPanel.js:Ext.reg('grid', Ext.grid.GridPanel);
extjs3.0\src\widgets\form\Checkbox.js:Ext.reg('checkbox', Ext.form.Checkbox);
extjs3.0\src\widgets\form\CheckboxGroup.js:Ext.reg('checkboxgroup', Ext.form.CheckboxGroup);
extjs3.0\src\widgets\form\Combo.js:Ext.reg('combo', Ext.form.ComboBox);
extjs3.0\src\widgets\form\DateField.js:Ext.reg('datefield', Ext.form.DateField);
extjs3.0\src\widgets\form\DisplayField.js:Ext.reg('displayfield', Ext.form.DisplayField);
extjs3.0\src\widgets\form\Field.js:Ext.reg('field', Ext.form.Field);
extjs3.0\src\widgets\form\FieldSet.js:Ext.reg('fieldset', Ext.form.FieldSet);
extjs3.0\src\widgets\form\Form.js:Ext.reg('form', Ext.FormPanel);
extjs3.0\src\widgets\form\Hidden.js:Ext.reg('hidden', Ext.form.Hidden);
extjs3.0\src\widgets\form\HtmlEditor.js:Ext.reg('htmleditor', Ext.form.HtmlEditor);
extjs3.0\src\widgets\form\Label.js:Ext.reg('label', Ext.form.Label);
extjs3.0\src\widgets\form\NumberField.js:Ext.reg('numberfield', Ext.form.NumberField);
extjs3.0\src\widgets\form\Radio.js:Ext.reg('radio', Ext.form.Radio);
extjs3.0\src\widgets\form\RadioGroup.js:Ext.reg('radiogroup', Ext.form.RadioGroup);
extjs3.0\src\widgets\form\TextArea.js:Ext.reg('textarea', Ext.form.TextArea);
extjs3.0\src\widgets\form\TextField.js:Ext.reg('textfield', Ext.form.TextField);
extjs3.0\src\widgets\form\TimeField.js:Ext.reg('timefield', Ext.form.TimeField);
extjs3.0\src\widgets\form\TriggerField.js:Ext.reg('trigger', Ext.form.TriggerField);
extjs3.0\src\widgets\chart\Chart.js:Ext.reg('chart', Ext.chart.Chart);
extjs3.0\src\widgets\chart\Chart.js  Ext.reg('piechart', Ext.chart.PieChart);
extjs3.0\src\widgets\chart\Chart.js  Ext.reg('cartesianchart', Ext.chart.CartesianChart);
extjs3.0\src\widgets\chart\Chart.js  Ext.reg('linechart', Ext.chart.LineChart);
extjs3.0\src\widgets\chart\Chart.js  Ext.reg('columnchart', Ext.chart.ColumnChart);
extjs3.0\src\widgets\chart\Chart.js  Ext.reg('stackedcolumnchart', Ext.chart.StackedColumnChart);
extjs3.0\src\widgets\chart\Chart.js  Ext.reg('barchart', Ext.chart.BarChart);
extjs3.0\src\widgets\chart\Chart.js  Ext.reg('stackedbarchart', Ext.chart.StackedBarChart);
extjs3.0\src\widgets\chart\FlashComponent.js:Ext.reg('flash', Ext.FlashComponent);
extjs3.0\src\data\ArrayStore.js:Ext.reg('arraystore', Ext.data.ArrayStore);
extjs3.0\src\data\ArrayStore.js  Ext.reg('simplestore', Ext.data.SimpleStore);
extjs3.0\src\data\DirectStore.js:Ext.reg('directstore', Ext.data.DirectStore);
extjs3.0\src\data\GroupingStore.js:Ext.reg('groupingstore', Ext.data.GroupingStore);
extjs3.0\src\data\JsonStore.js:Ext.reg('jsonstore', Ext.data.JsonStore);
extjs3.0\src\data\Store.js:Ext.reg('store', Ext.data.Store);
extjs3.0\src\data\XmlStore.js:Ext.reg('xmlstore', Ext.data.XmlStore);



example 中有如  Ext.ux 样的 xtype 组件

E:\Study ExtJS>grep -do Ext.reg\(' extjs3.0\examples\*.js
extjs3.0\examples\init.js:Ext.reg('samplespanel', Ext.samples.SamplePanel);
extjs3.0\examples\ux\ColumnNodeUI.js:Ext.reg('columntree', Ext.ux.tree.ColumnTree);
extjs3.0\examples\ux\ FileUploadField.js:Ext.reg(' fileuploadfield', Ext.ux.form. FileUploadField);
extjs3.0\examples\ux\GMapPanel.js:Ext.reg('gmappanel', Ext.ux.GMapPanel);
extjs3.0\examples\ux\GroupTab.js:Ext.reg('grouptab', Ext.ux.GroupTab);
extjs3.0\examples\ux\GroupTabPanel.js:Ext.reg('grouptabpanel', Ext.ux.GroupTabPanel);
extjs3.0\examples\ux\ItemSelector.js:Ext.reg('itemselector', Ext.ux.form.ItemSelector);
extjs3.0\examples\ux\MultiSelect.js:Ext.reg('multiselect', Ext.ux.form.MultiSelect);
extjs3.0\examples\ux\Portal.js:Ext.reg('portal', Ext.ux.Portal);
extjs3.0\examples\ux\PortalColumn.js:Ext.reg('portalcolumn', Ext.ux.PortalColumn);
extjs3.0\examples\ux\Portlet.js:Ext.reg('portlet', Ext.ux.Portlet);
extjs3.0\examples\ux\SelectBox.js:Ext.reg('selectbox', Ext.ux.form.SelectBox);
extjs3.0\examples\ux\SpinnerField.js:Ext.reg('spinnerfield', Ext.ux.form.SpinnerField);
extjs3.0\examples\ux\StatusBar.js:Ext.reg('statusbar', Ext.ux.StatusBar);
extjs3.0\examples\ux\ux-all-debug.js:Ext.reg('columntree', Ext.ux.tree.ColumnTree);
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg(' fileuploadfield', Ext.ux.form. FileUploadField);
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('gmappanel', Ext.ux.GMapPanel); Ext.ns('Ext.ux.grid');
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('grouptab', Ext.ux.GroupTab);
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('grouptabpanel', Ext.ux.GroupTabPanel);/*
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('itemselector', Ext.ux.form.ItemSelector);
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('multiselect', Ext.ux.form.MultiSelect);
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('portal', Ext.ux.Portal);
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('portalcolumn', Ext.ux.PortalColumn);
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('portlet', Ext.ux.Portlet);
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('selectbox', Ext.ux.form.SelectBox);
extjs3.0\examples\ux\ux-all-debug.js  Ext.reg('spinnerfield', Ext.ux.form.SpinnerField);
extjs3.0\examples\ux\ux-all.js: grep: input lines truncated - result questionable
extjs3.0\examples\key-feed-viewer\FeedGrid.js:Ext.reg('appfeedgrid', FeedGrid);
extjs3.0\examples\key-feed-viewer\FeedPanel.js:Ext.reg('appfeedpanel', FeedPanel);
extjs3.0\examples\key-feed-viewer\MainPanel.js:Ext.reg('appmainpanel', MainPanel);
extjs3.0\examples\image-organizer\imgorg\AlbumsPanel.js:Ext.reg('img-albumspanel', Imgorg.AlbumsPanel);
extjs3.0\examples\image-organizer\imgorg\AlbumsPanel.js  Ext.reg('img-album', Imgorg.Album);
extjs3.0\examples\image-organizer\imgorg\AlbumTree.js:Ext.reg('img-albumtree', Imgorg.AlbumTree);
extjs3.0\examples\image-organizer\imgorg\DirectCombo.js:Ext.reg('img-tagcombo', Imgorg.TagCombo);
extjs3.0\examples\image-organizer\imgorg\DirectCombo.js  Ext.reg('img-tagmulticombo', Imgorg.TagMultiCombo);
extjs3.0\examples\image-organizer\imgorg\DirectCombo.js  Ext.reg('img-albumcombo', Imgorg.AlbumCombo);
extjs3.0\examples\image-organizer\imgorg\ImageDv.js:Ext.reg('img-dv', Imgorg.ImageDv);
extjs3.0\examples\image-organizer\imgorg\ImagePanel.js:Ext.reg('img-panel',Imgorg.ImagePanel);
extjs3.0\examples\image-organizer\imgorg\ImageThumbPanel.js:Ext.reg('img-thumbpanel', Imgorg.ImageThumbPanel);
extjs3.0\examples\image-organizer\imgorg\MultiCombo.js:Ext.reg('multicombo', Ext.ux.MultiCombo);
extjs3.0\examples\image-organizer\imgorg\UploadQueue.js:Ext.reg('img-uploadqueue', Imgorg.UploadQueue);
extjs3.0\examples\grid\binding-with-classes.js:Ext.reg('bookgrid', App.BookGrid);
extjs3.0\examples\grid\binding-with-classes.js  Ext.reg('bookdetail', App.BookDetail);
extjs3.0\examples\grid\binding-with-classes.js  Ext.reg('bookmasterdetail', App.BookMasterDetail);
extjs3.0\examples\feed-viewer\FeedGrid.js:Ext.reg('appfeedgrid', FeedGrid);
extjs3.0\examples\feed-viewer\FeedPanel.js:Ext.reg('appfeedpanel', FeedPanel);
extjs3.0\examples\feed-viewer\MainPanel.js:Ext.reg('appmainpanel', MainPanel);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值