`

Ext.grid.GridPanel

EXT 
阅读更多

Ext.grid.GridPanel

* 创建GridPanel
1 创建数据对象store
    var centerStore = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url: '<c:out value="${path}"/>/marcInfo.htm?method=marcInfoQuery'
        }),
        reader: new Ext.data.JsonReader({
                totalProperty: 'totalProperty',
                root: 'marcInfoArr'
            },
            Ext.data.Record.create([
                {name: 'marcNo',type: 'string'},
                {name: 'marcName',type: 'string'},
                {name: 'marcDesc',type: 'string'},
                {name: 'marcSpec',type: 'string'},
                {name: 'marcUnit',type: 'string'},
                {name: 'lastPrice',type: 'float'},
                {name: 'statusRmk',type: 'string'},
                {name: 'marcKind',type: 'string'},
                {name: 'createUser',type: 'string'},
                {name: 'createDate',type: 'string'},
                {name: 'modifyUser',type: 'string'},
                {name: 'modifyDate',type: 'string'}
            ]))
    });
    centerStore.setDefaultSort('marcNo', 'asc');

2 创建数据行模型column model

    var centerColModel = new Ext.grid.ColumnModel({
        columns: [
            new Ext.grid.RowNumberer(),//行数号
            {header: "物料编码", width: 120, dataIndex: 'marcNo'},
            {header: "物料描述", width: 200, dataIndex: 'marcDesc'},
            {header: "物料规格", width: 200, dataIndex: 'marcSpec'},
            {header: "品名", width: 120, dataIndex: 'marcName'},
            {header: "单位", width: 80, dataIndex: 'marcUnit'},
            {header: "最近采购价格", width: 100, dataIndex: 'lastPrice',
                renderer: function(value, metaData, record, rowIndex, colIndex, store) {
                    if(value == 0){
                        return '';
                    }
                    return value+'元';
                  }
            },
            {header: "状态", width: 100, dataIndex: 'statusRmk',
                renderer: function(value, metaData, record, rowIndex, colIndex, store) {
                    switch (value){
                        case '1': return '正常使用';
                        case '2': return '冻结状态';
                        case '3': return '删除';
                    }
                    return '';
                  }
            },
            {header: "物料类别", width: 100, dataIndex: 'marcKind',
                renderer: function(value, metaData, record, rowIndex, colIndex, store) {
                    switch (value){
                        case '1': return '费用性物料';
                        case '2': return 'SAP物料';
                    }
                    return '';
                  }
            },
            {header: "创建者", width: 120, dataIndex: 'createUser'},
            {header: "创建时间", width: 120, dataIndex: 'createDate' ,align: 'center'},
            {header: "最后更改人", width: 120, dataIndex: 'modifyUser'},
            {header: "最后更改时间", width: 120, dataIndex: 'modifyDate' ,align: 'center'}
        ],
        defaults: {
            sortable: true,
            menuDisabled: false,
            align: 'left'
        }
    });

3 创建 中央表格 GridPanel

    var centerGrid = new Ext.grid.GridPanel({
        id: 'centerGrid',
        ds: centerStore,
        border: false,
        region: 'center',
        stripeRows: true,
        loadMask: {msg:'Loading……'},
        colModel: centerColModel,
        sm: new Ext.grid.RowSelectionModel({
                    singleSelect:true
                }),
        viewConfig: {
            enableRowBody: true,
            showPreview: false,
            getRowClass: function (record,rowIndex,p,store){
                if(this.showPreview){
                    p.body = '<p>'+record.data.description+'</p>';
                    return 'x-grid3-row-expanded';
                }
                return 'x-grid3-row-collapsed';
            }
        },
        //分页工具栏
        bbar: new Ext.PagingToolbar({
            params: {
                start: 0,
            limit: 50
            },
            pageSize: 50,
            store: centerStore,
            displayInfo: true,
            displayMsg: '显示数据从 第{0}条 - 第{1}条 共{2}条记录',
               emptyMsg: '无数据显示!',
               items: [
                   '-',
                   {
                       pressed: false,
                       enableToggle: false,
                       //text: 'Show Preview',
                       cls: 'x-btn-text-icon details',
                       toggleHandler: function(btn,pressed){
                           var view = centerGrid.getView();
                           view.showPreview = pressed;
                           view.refresh();
                       }
                   }
               ]
        })
    });

4 制定右键菜单:
    var rightMenu = new Ext.menu.Menu({
        id: 'defmenu',
        style: {
            overflow: 'visible'     // For the Combo popup
        },
        items: [{
            text: '修改',
            handler: indexFun.update
            }]
    });

5 显示右键菜单:

    centerGrid.addListener("contextmenu",function(e){
            var target = e.getTarget();
            e.preventDefault();
            rightMenu.showAt(e.getXY()); 
            var view = centerGrid.getView();
            var rowIndex = view.findRowIndex(target);
            centerGrid.getSelectionModel().selectRow(rowIndex);
        }
    );

6 设置基本参数:

    centerGrid.addListener('beforeload',function(){
            centerStore.setBaseParam("marcNo",marcNo.getValue());
            centerStore.setBaseParam("marcDesc",marcDesc.getValue());
            centerStore.setBaseParam("statusRmk",statusRmk.getValue());
            centerStore.setBaseParam("marcKind",marcKind.getValue());
            centerStore.setBaseParam("startDate",indexFun.getDateFieldFormatValue(startDate));
            centerStore.setBaseParam("endDate",indexFun.getDateFieldFormatValue(endDate));
        }
    );
7 加载数据:
centerStore.load({
    params: {
        start: 0,
        limit: 50,
        marcNo :marcNo.getValue(),
        marcName :marcName.getValue(),
        marcDesc :marcDesc.getValue(),
        statusRmk :statusRmk.getValue(),
        marcKind :marcKind.getValue(),
        startDate :indexFun.getDateFieldFormatValue(startDate),
        endDate :indexFun.getDateFieldFormatValue(endDate),
        queryFromForm :true
    },
    callback: function(r, options, success) {
        if (!success) {
            centerStore.removeAll();
        }
    }
});

8 centerrGrid.getView().refresh(); //可以使列号正确显示

分享到:
评论

相关推荐

    Ext.grid.GridPanel属性祥解

    ### Ext.grid.GridPanel属性详析 #### 一、Ext.grid.GridPanel概述 `Ext.grid.GridPanel`是ExtJS中用于展示表格数据的核心组件之一。它提供了丰富的配置选项和方法来帮助开发者灵活地控制表格的表现形式及功能。...

    Ext.grid.GridPanel 删除线

    Ext.grid.GridPanel 删除线 放到example文件夹下运行

    GridPanel中的单元格不能选中复制的解决方法

    Ext.grid.GridPanel 是一个功能强大且广泛使用的Grid控件,但是它存在一个很大的缺陷:单元格的内容不能选中,没法选中就没法复制,这给用户带来了很多不便。这个问题的根源在于ExtJs输出的代码中,每个单元格的div...

    ExtJs选中var editor = new Ext.ux.grid.RowEditor详解

    var grid = new Ext.grid.GridPanel({ store: store, // 绑定数据存储 columns: [/* 定义列 */], plugins: [editor], // 使用 RowEditor 作为插件 title: 'My Grid', width: 500, height: 300, renderTo: ...

    可编辑表格Ext.grid.EditorGridPanel

    2. Ext.grid.EditorGridPanel:EditorGridPanel是Ext JS中的一种网格组件,它扩展了GridPanel,增加了单元格级别的编辑功能。用户可以直接在表格中修改数据,而无需跳转到单独的编辑页面。 二、核心特性 1. 可编辑...

    Ext.grid.GridPanel右键菜单

    右键菜单的资料,代码已经详细描写。请仿照文件中所描述即可使用,不限于EXT4.0以上版本使用。

    Ext grid panel 滚动条位置不变

    ### Ext grid panel 滚动条位置不变 在前端开发领域,特别是在使用Ext JS框架时,保持滚动条位置不变是一个非常实用的功能。特别是在处理实时数据更新的场景下,这一功能可以确保用户在数据刷新后仍然停留在之前...

    Ext.grid.ColumnModel显示不正常

    Ext.grid.ColumnModel显示不正常

    Ext组件描述,各个组件含义

    **2.6 Grid Panel (Ext.grid.GridPanel)** - **xtype**: `grid` - **功能描述**:Grid Panel 是一个用于展示表格数据的组件。 - **主要用途**:展示结构化数据,支持排序、过滤等功能。 **2.7 Paging Toolbar (Ext...

    Ext表格列锁定+多表头插件

    这个插件主要用于改进Ext Grid的用户体验,特别是处理大量数据时,通过列锁定和多表头功能,使得用户能够更有效地浏览和操作数据。 首先,"列锁定"是Ext Grid中一个非常实用的功能,特别是在显示宽广、多列的数据表...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    这段代码创建了一个`Panel`,其中包含一个`GridPanel`,并配置了`Store`来从`data.json`加载数据。 接下来,`TreePanel`是用来展示树形结构数据的组件,常用于文件系统或组织结构的展示。与`Ext.Panel`类似,`...

    ext表格布局小例子

    其表格组件(`Ext.grid.GridPanel`)是其最具特色的功能之一,广泛应用于数据展示和管理。 #### 二、代码分析 在本例中,我们首先引入了必要的 ExtJS 相关文件,包括样式表、脚本等资源。 ```html ...

    extjs单元格无法复制

    解决 ExtJS GridPanel 单元格无法选中复制的问题需要两个步骤:添加新的 CSS 样式和修改 Ext.grid.GridPanel 的 prototype。通过这些步骤,我们可以使得单元格的内容可以被选中和复制,从而提高用户体验。

    EXTJSEXT实例GridPanel.

    var grid = new Ext.grid.GridPanel({ store: store, cm: cm, renderTo: Ext.getBody() // 渲染到页面的body元素 }); ``` 此外,EXTJS的GridPanel还支持许多高级特性,例如: - **行编辑**: 可以通过添加...

    ExtJs GridPanel双击事件获得双击的行

    var grid = Ext.create('Ext.grid.Panel', { store: store, columns: columns, renderTo: Ext.getBody() // 渲染到页面 }); ``` 接下来,我们需要为GridPanel添加双击事件监听器。在ExtJs中,我们可以使用`...

    Ext Grid表格的自动宽度及高度的实现

    在Ext JS中,`Ext.grid.GridPanel`是用于展示数据的主要组件之一。通过合理配置Grid的属性,可以使其根据父容器的大小动态调整自身尺寸,确保表格在任何布局下都能完美呈现。 #### 1. 利用CSS设置父容器尺寸 首先...

    Ext GridPanel 中实现加链接操作

    var grid = new Ext.grid.GridPanel({ store: store, columns: [ {header: "ID", dataIndex: "id", width: 50}, {header: "Name", dataIndex: "name", width: 150}, {header: "Email", dataIndex: "email", ...

    Ext表格获取后台数据

    ExtJS是一款基于JavaScript的RIA(Rich Internet Application,富互联网应用)框架,它提供了许多强大的功能和组件,其中之一就是表格组件Ext.grid.GridPanel。 Ext.grid.GridPanel是一个功能强大的表格控件,它...

    Ext2.0框架的grid使用

    var grid = new Ext.grid.GridPanel({ el: 'grid', ds: ds, cm: cm }); grid.render(); ``` #### 高级特性:添加CheckBox 在Grid中集成CheckBox选择模型,可实现行项目的多选功能。具体操作如下: 1. **...

    Ext2.2.GridPanel分页处理+dwrproxy(js对象和json两种数据)

    var grid = new Ext.grid.GridPanel({ store: store, columns: [/*...*/], // 列定义 viewConfig: { forceFit: true // 自动调整列宽 }, bbar: new Ext.PagingToolbar({ store: store, // 关联数据存储 ...

Global site tag (gtag.js) - Google Analytics