EXTJS.docx

上传人:b****7 文档编号:9738149 上传时间:2023-02-06 格式:DOCX 页数:16 大小:149.28KB
下载 相关 举报
EXTJS.docx_第1页
第1页 / 共16页
EXTJS.docx_第2页
第2页 / 共16页
EXTJS.docx_第3页
第3页 / 共16页
EXTJS.docx_第4页
第4页 / 共16页
EXTJS.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

EXTJS.docx

《EXTJS.docx》由会员分享,可在线阅读,更多相关《EXTJS.docx(16页珍藏版)》请在冰豆网上搜索。

EXTJS.docx

EXTJS

 

Extjs表单元素实现横向、多列布局,最简单的代码示例

分类:

 extjs2014-06-1819:

42 1925人阅读 评论(0) 收藏 举报

extjs

[javascript] viewplaincopy

1.Ext.onReady(function(){  

2.  

3.    Ext.create('Ext.form.Panel',{  

4.      

5.        title :

 '横向布局测试',  

6.        height :

 130,  

7.        width :

 550,  

8.        frame :

 true,  

9.        layout :

 'form',  

10.        renderTo :

 Ext.getBody(),  

11.        items :

 [{  

12.              

13.            layout :

 'column',  

14.            frame :

 true,  

15.            items :

 [{  

16.                  

17.                xtype :

 'textfield',  

18.                fieldLabel :

 '姓名',  

19.                name :

 'name'  

20.            },{  

21.                  

22.                xtype :

 'textfield',  

23.                fieldLabel :

 '姓名',  

24.                name :

 'name'  

25.            }]  

26.        },{  

27.              

28.            layout :

 'column',  

29.            frame :

 true,  

30.            items :

 [{  

31.                  

32.                xtype :

 'textfield',  

33.                fieldLabel :

 '姓名'  

34.            },{  

35.                  

36.                xtype :

 'textfield',  

37.                fieldLabel :

 '姓名'  

38.            }]  

39.        }]  

40.    });  

41.});  

效果图:

如果要去掉每行的边框,只需加上一个属性:

[javascript] viewplaincopy

1.Ext.onReady(function(){  

2.  

3.    Ext.create('Ext.form.Panel',{  

4.      

5.        title :

 '横向布局测试',  

6.        height :

 130,  

7.        width :

 550,  

8.        frame :

 true,  

9.        layout :

 'form',  

10.        renderTo :

 Ext.getBody(),  

11.        items :

 [{  

12.              

13.            layout :

 'column',  

14.            frame :

 true,  

15.            baseCls :

 'my-panel-no-border',  //去掉边框  

16.            items :

 [{  

17.                  

18.                xtype :

 'textfield',  

19.                fieldLabel :

 '姓名',  

20.                name :

 'name'  

21.            },{  

22.                  

23.                xtype :

 'textfield',  

24.                fieldLabel :

 '姓名',  

25.                name :

 'name'  

26.            }]  

27.        },{  

28.              

29.            layout :

 'column',  

30.            frame :

 true,  

31.            baseCls :

 'my-panel-no-border',  //去掉边框  

32.            items :

 [{  

33.                  

34.                xtype :

 'textfield',  

35.                fieldLabel :

 '姓名'  

36.            },{  

37.                  

38.                xtype :

 'textfield',  

39.                fieldLabel :

 '姓名'  

40.            }]  

41.        }]  

42.    });  

43.});  

效果图:

版权声明:

本文为博主原创文章,未经博主允许不得转载。

 

extjs之GridPanel表格

分类:

 extjs2013-04-0410:

19 711人阅读 评论(0) 收藏 举报

grid初级部分:

 需要的其他辅助类有ColumnModel(Observable的子类)、RowSeletedModel、GridView、Store、RowNumberer、CheckboxSelectiondModel

(1)、包含表头(列的宽度、是否改变大小、是否排序(sortable)、是否出现菜单,是否隐藏(hidden),渲染(renderer))、数据行、分页栏。

(2)、为autoExpandColumn属性的列必须id属性。

(3)、列模型的dataIndex列需要对应reader中的name属性,reader中的mapping属性对应proxy中的name属性。

(4)、在columnModel中设置列属性renderer:

Ext.util.Format.dateRenderer('Y-m-d')可以控制日期的格式

(5)、行选择模型值(grid.getSelectionModel())负责选择行的方法(第一个、最后一个、下一个、上一个、选择指定的、选择全部)和行被选择的信息(是否被选中、取消指定的选择、得到选中的条目、判断是否还有上/下条)

(6)、通过grid.getView().getRows().length可以取得总行数

(7)、通过指定Ext.grid.RowNumberer()添加序号

(8)、通过指定Ext.grid.CheckboxSelectionModel()添加复选框,在Gridpanel中添加sm:

sm

(9)、视图模型(GridView)有getRows()、getRow(row)、getCell(row,col)、refresh(true:

是否表头也刷新)

(10)、通过grid.getStore().getAt(i).get('name')在模型记录中获得对应的数据内容,另外在Store中定义了add(record),insert(index,records),remove()remove(index),removeAll()

(11)、   grid.getColumnModel().getColumnById('tagline').sortable=true;可以通过列模型设置列是否可排序

 同样:

varcolModel=grid.getColumnModel();    colModel.setHidden(column.getIndexById('tagline'),true)设置列为隐藏

(12)、enableColumnMove:

false; 设置列不能拖动

(13)、从xml读取数据的准备有:

在store中配置url,reader用XmlReader,XmlReader的第一个参数要用record设置数据行在xml中的根目录,最后用load()方法加载

(14)、从json读取数据和xml差不多,只用把XmlReader变为JsonReader,把record改为root,在json对象中要有一个success属性和root属性的一个对象数组

(15)、为列模型指定:

Ext.grid.RowNumberer()配置学号

(16)、为列模型配置和GridPanel配置:

Ext.grid.CheckboxSelectionModel()可以配备复选框

(17)、通过grid.getSelectionModel()获取选择模型,有selectFirstRow()、selectLastRow()、selectNext(keeping)、selectPrevious(keeping)、hasNext()、hasPrevious()、selectAll()、isSelected(index)、selectedRows(rows,keeping)、selectRange(start,end,keeping)、deselectRow(index)、deselectRange(start,end)、getCount()

(18)、通过grid.getView().getRows().length可以获得总行数,GirdView中常用方法有:

getRows()、getRow(index)、getCell(row,col)、refresh(boolean)

(19)、grid.getStore().getAt(i).get('name')获取指定name的行,在store常用的方法有:

add(records)、insert(index,records)、remove(record)、removeAll()

(20)、CellSelectionModel:

一次选择一个单元格

                RowSelectModel:

一次选择一行

               ColumnSelectionModel:

一次选择一列

               CheckBoxSelectionModel:

使用checkbox来做行的选择

grid高级部分

一、显示摘要

grid有一个隐藏的RowBody,由GridView管理,在grid的viewConfig属性配置中,有属性forceFit(按一定比列拉伸列的宽度)、enableRowBody(启动RowBody)、showPreview(是否显示摘要)、getRowClass()设置RowBody的内容

配置如下:

viewConfig:

{

forceFit:

true,

enableRowBody:

true,

showPreview:

true,

getRowClass:

function(record,rowIndex,p,store){

if(this.showPreview){

p.body = '

5px;border:

1px #DFE8F6 solid;margin:

2px">

#15428B;font-weight:

bold;">备注:

顶替棋不日

';

return 'x-grid3-row-expanded';

}

return 'x-grid3-row-collapsed';

}

},

二、分组

需要GroupingStore(Store的子类)和GroupingView(GridView)的支持,分组的依据是reader的name属性,要进行分组有以下准备:

(1):

要配置GroupingStore,

var store = new Ext.data.GroupingStore({

proxy:

proxy,

reader:

reader,

groupField:

'Sex',

autoLoad:

true,

sortInfo:

{field:

'Sex',direction:

'DESC'}

});

(2):

在GridPanel中指定view:

new Ext.grid.GroupingView()

(3):

要使得分组和摘要同时显示,必须把先前的viewConfig配置写在view的GroupingView的配置里面

三、可编辑的EditorGridPanel

(1):

EditorGridPanel的选择模型是CellSelectionModel,而且列模型要指定一个editor:

new Ext.grid.GridEditor(),里面是是一些表单控件。

(2):

在EditorGridPanel比以前多autoEncode:

true,clickToEdit:

1

(3):

将记录设置为脏数据状态,并将修改后的记录存放在Record类型的数组modified中。

当删除数据时,modified不变化,所以这些操作:

删除Store,modified中指定的元素,触发remove事件,更新EditGridPanel视图

(4):

可以用CellSelectionModel模型用getSelectedCell()获取单元格信息,返回如[3,4]这的行列坐标;用hasSelection()获取是否有有选中的单元格

(5):

EditorGridPanel的验证和表单完全一样

四、paging分页

bbar:

new Ext.PagingToolbar({

store:

store,

pageSize:

2,

displayInfo:

true,

displayMsg:

'本页显示第{0}条到第{1}条的记录,一共{2}条',

emptyMsg:

'没有记录!

',

items:

['-',{

icon:

'../resources/images/default/dd/drop-yes.gif',

cls:

'x-btn-text-icon',

pressed:

true,

text:

'隐藏备注',

cls:

'x-btn-text-icon details',

toggleHandler:

function(btn,pressed){

var view = grid.getView();

if(pressed){

btn.setText('隐藏备注');

}else{

btn.setText('显示备注');

}

view.showPreview = pressed;

view.refresh();

}

}]

})

 

版权声明:

本文为博主原创

 

extjs之simpleStore

分类:

 extjs2013-05-1109:

20 656人阅读 评论(0) 收藏 举报

ExtJS

[html] viewplaincopy

1.var fileGrid = new Ext.grid.GridPanel({  

2.    title:

'上传文件列表',  

3.    height:

150,  

4.    autoScroll:

true,  

5.    frame:

true,  

6.    columns:

[  

7.        new Ext.grid.RowNumberer(),  

8.        {header:

'文件名',dataIndex:

'fileName'}  

9.    ],  

10.    store:

new Ext.data.SimpleStore({  

11.        fields:

[  

12.            {name:

'fileName'}  

13.        ],  

14.        data:

[  

15.            ['大世界英语'],  

16.            ['大学语文'],  

17.            ['离散数学']  

18.        ]  

19.    })  

20.});  

 

extjs之treePanel树

分类:

 extjs2013-05-1011:

53 567人阅读 评论(0) 收藏 举报

一、以下是树的一些常用的类

二、从服务器异步加载只需四步

(1)、编写树加载器

[html] viewplaincopy

1.var treeLoader = new Ext.tree.TreeLoader({  

2.    dataUrl:

'servlet/TreeJson'  

3.});  

(2)、指定根节点

[html] viewplaincopy

1.var rootNode = new Ext.tree.AsyncTreeNode({  

2.    text:

'root'  

3.});  

(3)、编写树面板

[html] viewplaincopy

1.var tree = new Ext.tree.TreePanel({  

2.    renderTo:

'treecontainer',  

3.    loader:

treeLoader,  

4.    root:

rootNode  

5.});  

(4)、在服务器端返回json,每个节点对象需要指定id、text、leaf、children等属性

[html] viewplaincopy

1.[   {id:

'1',text:

'No children',leaf:

true},  

2.    {id:

'2',text:

'has Children',children:

[  

3.                                          {id:

'3',text:

'Youngster',leaf:

true}  

4.                                          ]}]  

小知识点:

(1)、TreeNode本身没有的属性会被放在attributes属性之中

(2)、enabelDD属性配置节点是否可拖动,通过监听beforemovenode事件来保存节点移动的信息

(3)、newExt.tree.TreeSorter(tree,{folder:

true,dir:

'asc/desc'});来为tree的同一层节点排序

(4)、sortType:

function(node){returnnode.attributes.creationDate}可以指定排序的依据是哪个属性

(5)、TreePanel默认的selModel是:

DefaultSelectionModel(单选,有clearSelections()方法),指定其为:

newExt.tree.MultiSelectionModel();可以实现多选,有selectNext()、selectPrevious()等方法

(6)、给树节点加右键菜单

[html] viewplaincopy

1.var contextMenu = new Ext.menu.Menu({  

2.      

3.    items:

[  

4.        {text:

'Delete'},  

5.        {text:

'Sort'}  

6.    ]  

7.});  

8.tree.on('contextMenu', function treeContexthandler(node){  

9.    node.select();  

10.    contextMenu.show(node.ui.getAnchor());  

11.});  

(7)、给树的节点增加一个过滤器

[html] viewplaincopy

1.function filterHandler(){  

2.    var node = tree.getSelectionModel().getSelectedNode();  

3.    filter.filter('Bee', 'text', node);// 被过滤的值,过滤的属性(可选,默认为text),开始过滤的节点  

4.}  

5.var filter = new Ext.tree.TreeFilter(tree);  

6.var contextMenu = new Ext.menu.Menu({  

7.    items:

[  

8.        {text:

'Filter', handler:

filterHandler}  

9.    ]  

10.});  

11.tree.on('contextMenu', function treeContexthandler(node){  

12.    node.select();  

13.    contextMenu.show(node.ui.getAnchor());  

14.});  

(8)、把animate设置为false,可以关闭节点展开合拢的动画

(9)、把lines设置为false,可以隐藏树节点的层次线

(10)、把dlDrop和trackMouseOver设置为false,可以取消节点显示的高亮

(11)、设置一个超链接节点

[html] viewplaincopy

1.{text:

'href',enable:

true,href:

''}  

(12)、设置allowChildren:

false来让节点不能有子节点

(13)、设置checked;true/false来让节点拥有checkbox,当checked改变会触发checkchange事件

(14)、icon设置图标,cls设置css样式,qtip允许你单出tooltip

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1