学习ExtJS的grid布局

Posted GuliGugaLiz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习ExtJS的grid布局相关的知识,希望对你有一定的参考价值。

这是之前学习ExtJS布局的时候我导师让我重点熟悉的内容。之后会发一个最近写的结合MVC项目的grid布局的案例。

上一篇关于ExtJS的学习资料什么的都已经更在上一篇了,这里只是对一些代码的记录。

【学习资料】(ExtJS4中的Grid、Tree、Form)http://www.cnblogs.com/niejunchan/p/4998512.html

【效果】

Array_Grid

Tree_Grid

【代码】

[Array_Grid的代码]

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <meta charset="utf-8" />
    <script src="Scripts/Extjs/ext-all.js"></script>
    <script src="Scripts/Extjs/packages/ext-locale/build/ext-locale-zh_CN.js"></script>
    <script src="Scripts/Extjs/ux/app.js"></script>
    <link href="Scripts/Extjs/packages/ext-theme-crisp/build/resources/ext-theme-crisp-all.css" rel="stylesheet" />
    <!--<script type="text/javascript">
        //测试上面js,css文件是否连接进来用的
        Ext.onReady(function () {
            Ext.Msg.alert("hh", "welcome");
            var win = new Ext.Window({ title: "hello", width: 200, height: 300, html: \'<h1>ok....just  a  test....</h1>\' });
            win.show();
        });
    </script>-->
    <script type="text/javascript">
        Ext.onReady(function () {
            var userStore = Ext.create("Ext.data.Store", {
                fields: ["account", "name", "sex", "age", "role"],
                data: [
                    ["zhanglei", "张磊", "", "30", "管理员"],
                    ["liming", "黎明", "", "27", "主编"],
                    ["liuying","刘颖","","22","内容编辑"]
                ]
            });

            Ext.create("Ext.grid.Panel", {
                title: \'多表头Grid\',
                margin: 10,
                width: 600,
                height: 400,
                border: true,
                //添加左边的checkbox
                selModel: {
                    type:"checkboxmodel"
                },
                store: userStore,//加载数据
                columns: [{
                    text: "账号",
                    dataIndex: "account",
                    flex: 1,
                    align:\'center\',

                }, {
                    text: "基本信息",
                    flex: 3,
                    align: \'center\',
                    columns: [{
                        text: \'姓名\',
                        dataIndex: \'name\',
                        align:\'center\'
                    }, {
                        text: \'性别\',
                        dataIndex: \'sex\',
                        align:\'center\'
                    }, {
                        text: \'年龄\',
                        dataIndex: \'age\',
                        align:\'center\'
                    }]},
                     {
                         text: \'角色\',
                         dataIndex: \'role\',
                         flex:1,
                         align:\'center\'       
                     }, ],
                //增加分页控件
                bbar: {
                    xtype: \'pagingtoolbar\',
                    store: userStore,
                    displayInfo:true
                },
                renderTo:Ext.getBody()
            });

        });
    </script>

</head>
<body>

</body>
</html>
View Code

[Tree_Grid的代码]

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <meta charset="utf-8" />
    <script src="Scripts/Extjs/ext-all.js"></script>
    <script src="Scripts/Extjs/packages/ext-locale/build/ext-locale-zh_CN.js"></script>
    <script src="Scripts/Extjs/ux/app.js"></script>
    <link href="Scripts/Extjs/packages/ext-theme-crisp/build/resources/ext-theme-crisp-all.css" rel="stylesheet" />
    <!--<script type="text/javascript">
        //测试上面js,css文件是否连接进来用的
        Ext.onReady(function () {
            Ext.Msg.alert("hh", "welcome");
            var win = new Ext.Window({ title: "hello", width: 200, height: 300, html: \'<h1>ok....just  a  test....</h1>\' });
            win.show();
        });
    </script>-->
 <script type="text/javascript">
     Ext.onReady(function () {
         Ext.define("DeptModel", {
             extend: "Ext.data.TreeModel",
             fields: [
                 "DeptName","Leader"
             ]
         });

         var store = Ext.create("Ext.data.TreeStore", {
             model: "DeptModel",
             root: {
                 expanded: true,
                 DeptName: "总公司",
                 Leader: "Lin",
                 children: [
                     { DeptName: "技术部", Leader: "xia", leaf: true },
                     { DeptName: "财务部", Leader: "Li", leaf: true }
                 ]
             }
         });
         var viewport = Ext.create("Ext.container.Viewport", {
             layout: "auto",
             items: [{
                 xtype: "treepanel",
                 itemId: "tree",
                 width: 600,
                 height: 500,
                 store: store,
                 lines: false,
                 useArrows: true,
                 multiSelect:true,
                 columns: [
                     {
                         xtype: \'treecolumn\',
                         text: \'部门\',
                         dataIndex: "DeptName",
                         flex: 1,
                         sortable:false
                     },
                     {
                         text: "领导",
                         dataIndex: "Leader",
                         flex: 1,
                         sortable:true

                     }, {
                         xtype: \'checkcolumn\',
                         header: \'选择\',
                         dataIndex: \'done\',
                         flex: 1,
                         stopSelection: false,
                         menuDisabled:true,
                     }, {
                         xtype: \'actioncolumn\',
                         flex: 1,
                         items: [

                             {
                                icon: \'Content/images/user_edit.png\',//需要自己把图片弄进去才有
                                
                                 tooltip: \'Edit\',
                                 handler: function (grid, rowIndex, colIndex) {//这里的方法只是一个弹出信息,可替换成具体实现
                                     var rec = grid.getStore().getAt(rowIndex);
                                     Ext.MessageBox.alert(\'Edit\', rec.get(\'Leader\'));
                                 }
                             }, {
                                 icon: \'Content/images/user_delete.png\',
                                 
                                 tooltip: \'Delete\',
                                 handler: function (grid, rowIndex, colIndex) {
                                     var rec = grid.getStore().getAt(rowIndex);
                                     Ext.MessageBox.alert(\'Delete\', rec.get(\'Leader\'));
                                 }
                             }
                         ]
                     }
                 ],
                 bbar: {
                     xtype: \'pagingtoolbar\',
                     store: store,
                     displayInfo: true
                 },
                
             }]
       
         });

     });
 </script>
</head>
<body>

</body>
</html>
View Code

 

以上是关于学习ExtJS的grid布局的主要内容,如果未能解决你的问题,请参考以下文章

extjs 5 网格的滚动条在边框布局面板中不起作用

Extjs中grid前端分页使用PagingMemoryProxy

具有布局适合和网格的 Extjs 3.3.1 FieldSet 在窗口调整大小时不会调整网格大小

[ExtJS5学习笔记]第三十四节 sencha extjs 5 grid表格之java后台导出excel

ExtJS 4.2 Grid组件的单元格合并

Extjs示例代码怎么使用?