EXTJS4.2——5.grid+form自适应

<!--导入相应Extjs库-->
<script src="~/Scripts/Extjs4.2/ext-all.js"></script>
<link href="~/Scripts/Extjs4.2/resources/ext-theme-neptune/ext-theme-neptune-all.css" rel="stylesheet" />
<script src="~/Scripts/Extjs4.2/ext-theme-neptune.js"></script>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>

<script>
    Ext.onReady(function () {
        //声明button查询按钮
        var btnSubmit = Ext.create('Ext.Button', {
            text: '查询',
            //handler是用于设置按按键的时候使用的数据
            handler: function () {
                ExtData.load();
            }
        });

        //声明Form组件
        var form = Ext.create('Ext.form.Panel', {
            title: '信息填写',
            //layout类型可以通过查找Ext.enums.Layout获取
            layout: 'column',
            height: 80,
            //判断是否填充满整个宽度
            forceFit: true,
            //设置组件在Panel中的上下位置
            bodyPadding: 10,
            //设置要插入的组件
            items: [{
                xtype: 'textfield',
                //部件名称
                name: 'username',
                //显示名称
                fieldLabel: 'Name',
                //判断是否允许空值
                allowBlank: false  
            }, btnSubmit]
        });

        //store数据存储,通过store实现数据获取和数据转移
        var ExtData = Ext.create('Ext.data.Store', {
            storeId: 'employeeStore',
            fields: ['Name', 'Age', 'Address'],//表示在图标上展示的信息
            proxy: {
                type: 'ajax',
                actionMethods: 'post',
                url: '/GridPanel/MessageBack',
                reader: {
                    type: 'json',
                    root: 'data',//注意點
                    totalProperty: 'total'//注意點
                }
            },

            autoLoad: true,
            listeners: {
                beforeload: function (store, operation, eOpts) {
                    //將查詢條件傳遞到後台
                    var postData = {
                        username: $("input[name='username']").val()
                    };
                    Ext.apply(store.proxy.extraParams, postData);
                }
            }

        });

        //定义一个表格组件
        var grid = Ext.create('Ext.grid.Panel', {
            //设置ID号
            id: 'gridPanel1',
            title: '详细信息',
            //这个不太懂
            store: Ext.data.StoreManager.lookup('employeeStore'),
            //设置表格的每列的属性和名称
            columns: [
                { text: '姓名', dataIndex: 'Name' },
                {
                    header: "操作",
                    dataIndex: 'name3',
                    renderer: function () { return '<button type="button" onclick="Reback()">发送消息</button>'; }
                },
                {
                    header: "部门",
                    dataIndex: 'typeCheck',
                    renderer: function () { return '<select><option value="it">IT部门</option><option value="soft">硬件部门</option>' }
                },
                { text: '年龄', dataIndex: 'Age' },
                { text: '居住地', dataIndex: 'Address' }
            ],
            layout: 'fit',
            //这个forcefit的设置就比较重要了,可以尝试比较true和false的区别
            forceFit: true
        });

        //声明一个panel来放置form和grid
        var borderPanel = Ext.create('Ext.panel.Panel', {
            //自动获取屏幕大小
            layout: 'border',//这里设置panel的样式
            items: [
                // xtype: 'panel' implied by default
                {
                region: 'center',
                xtype: 'panel',
                margins: '5 5 0 0',
                items:[form,grid]
            }],
            renderTo: Ext.getBody()
        });
        
        //声明了一个HelloExt全局变量,具体定义查看Ext.app.Application
        Ext.application({
            name: 'HelloExt',
            launch: function () {
                Ext.create('Ext.container.Viewport', {
                    layout: 'fit',
                    items: [borderPanel]
                });
            }
        });

    })

</script>


原文地址:https://www.cnblogs.com/LY-CS/p/13218061.html