`

Ext动态grid

    博客分类:
  • ext
阅读更多

在做报表的时候,需要将grid的列数做成活的,列数有数据库里的字段确定,这据需要将grid的列数做成动态的,经过多次实验已成,如下:

后台返回的json:

                {'action':true,'message':'error!','data':[
                {'number':'1','text1': '3','info1': '4','special1': '5'}
                ],'columModle':[
                {'header': '序号','dataIndex': 'number','width':40},
                {'header': '编码','dataIndex': 'text1'},
                {'header': '名称','dataIndex': 'info1'},
                {'header': '金额','dataIndex': 'special1'}
                ],'fieldsNames':[{name: 'number'},
                {name: 'text1'}, {name: 'info1'},
                {name: 'special1'}]}



            var cm = new Ext.grid.ColumnModel(json.columModle);
            var ds = new Ext.data.JsonStore({
            data:json.data,
            fields:json.fieldsNames
            });
                                       
            var grid = new Ext.grid.GridPanel({
            region: 'center',
            split: true,
            border:false,
            cm:cm,
            ds:ds
            });
            grid.render(document.body);
           
            new Ext.Viewport({
              layout: 'border',
              split: true,
              items: [grid]
            });




对于Ext动态grid这个问题,好多人都问过我,还有就是如何做多行表头,就是表头有两行以上,其中一列跨下边几列,对于多行表头的问题在这一会半会会说不清楚,只能告诉大家需要自己写插件。咱们还是说说动态表头的问题。
简单的说就是:从后台拼出json字符串--->前台取得字符串,并转化为json----->根据json创建grid
1.从后台拼出json字符串
               “{'action':true,'message':'error!','data':[
                {'number':'1','text1': '3','info1': '4','special1': '5'}
                ],'columModle':[
                {'header': '序号','dataIndex': 'number','width':40},
                {'header': '编码','dataIndex': 'text1'},
                {'header': '名称','dataIndex': 'info1'},
                {'header': '金额','dataIndex': 'special1'}
                ],'fieldsNames':[{name: 'number'},
                {name: 'text1'}, {name: 'info1'},
                {name: 'special1'}]}”
2.前台取得字符串,并转化为json
                               Ext.Ajax.request({
                                url: '自己的url',
                                params: 'method=自己的方法',
                                method: 'POST',
                                success: function(rs,request){
                                    var result = rs.responseText;//拿到结果集,此时为字符串
                                    var json = Ext.util.JSON.decode(result);//将字符串转换为json类型
                                },
                                failure: function(rs,request){
                                }
                            });
3.根据json创建grid
                               Ext.Ajax.request({
                                url: '自己的url',
                                params: 'method=自己的方法',
                                method: 'POST',
                                success: function(rs,request){
                                    var result = rs.responseText;//拿到结果集,此时为字符串
                                    var json = Ext.util.JSON.decode(result);//将字符串转换为json类型
                                    var cm = new Ext.grid.ColumnModel(json.columModle);
                                    var ds = new Ext.data.JsonStore({
                                          data:json.data,
                                          fields:json.fieldsNames
                                        });
                                      
                                    var grid = new Ext.grid.GridPanel({
                                            region: 'center',
                                            split: true,
                                            border:false,
                                            cm:cm,
                                            ds:ds
                                            });
                                   // grid.render(document.body);
          
                                  new Ext.Viewport({
                                          layout: 'border',
                                          split: true,
                                          items: [grid]
                                    });
                                },
                                failure: function(rs,request){
                                }
                            });

注意的地方:首先grid必须在sucsess方法里实例,否则会报错,json数据也只在sucess方法里起作用。Ext的灵魂就是json很多控件都可以用以上方法实现。

分享到:
评论
5 楼 TeddyWang 2011-03-07  
http://www.oracle.com/pls/db111/homepage

http://www.oracle.com/technetwork/tutorials/index.html

http://www.oracle.com/technetwork/oramag/magazine/tech-articles/index.html
4 楼 TeddyWang 2011-02-25  
zgyuanz 写道
我很想问个问题。动态Grid 怎么实现分页啊

grid就是grid 动不动态跟分页没有关系,你可以仔细想一下。
3 楼 zgyuanz 2011-02-25  
真的真的 很需要 大大支持下
2 楼 zgyuanz 2011-02-25  
我很想问个问题。动态Grid 怎么实现分页啊
1 楼 zgmws1978 2010-11-18  
能把你后台拼json的java方法贴一下吗,十分感谢

相关推荐

    Ext grid 动态添加字段、列扩展

    Ext grid 动态添加字段、列扩展, 如何动态添加或者删除一个grid的列

    EXT2.0 GRID 示例

    6. **事件监听**:EXT提供了丰富的事件系统,如`rowselect`、`cellclick`等,可以监听用户的交互行为,实现动态响应。 7. **Ajax交互**:GRID通常与服务器进行异步数据交换,EXT的AJAX组件(如AjaxProxy)用于发送...

    Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。

    Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分...

    Ext jsGrid 锁列问题

    用于Ext开发Grid中遇到的所锁列的问题,这个很有帮助

    EXT 通用动态Grid封装js

    对ext Grid进行了封装,动态加载数据源,动态生成列

    Ext4 grid打印

    Ext4 Grid提供了丰富的功能,包括数据排序、筛选、分页以及列的动态调整等。在这个场景下,"grid打印"指的是将Grid中的数据导出或者可视化地呈现到纸上,以便于用户进行查阅或存档。这通常涉及到打印预览,确保数据...

    ext grid 动态扩展

    本篇将详细介绍如何实现 `Ext Grid` 的列动态添加。 1. **创建 ColumnModel** `Ext.grid.ColumnModel` 是用于定义 `GridPanel` 列结构的类。在创建 `ColumnModel` 时,我们需要提供一个包含列信息的 JavaScript ...

    Ext自定义Grid Cell插件

    在Ext JS这个强大的JavaScript框架中,`Grid`是用于展示数据的一种常见组件,它提供了灵活的数据展示和操作功能。在实际开发中,我们有时需要在Grid的单元格(Cell)中添加更丰富的交互元素,例如输入框、下拉选择器...

    Ext Grid 导出Excel

    在IT领域,特别是Web开发中,Ext Grid是一个广泛使用的组件,用于展示和管理大量数据。它提供了丰富的功能,包括排序、筛选、分页等,使得数据的交互和操作变得非常便捷。当我们需要将Ext Grid中的数据导出为Excel...

    Ext grid panel 滚动条位置不变

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

    JSP中使用EXT实现grid table

    在JavaServer Pages (JSP) 开发中,EXT 是一个流行的JavaScript 框架,它提供了丰富的用户界面组件,包括Grid(数据网格)和Table。EXT 提供了一种优雅的方式来展示和操作数据,尤其适用于创建交互式的Web应用程序,...

    Ext.grid.GridPanel属性祥解

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

    ext grid tree 应用

    综上所述,"ext grid tree 应用"展示了EXT JS在构建动态、交互式Web应用程序的强大能力,包括数据展示、数据管理、用户交互以及个性化设置等多个方面。通过学习和理解这些知识点,开发者可以更好地利用EXT JS创建...

    ExtJs动态grid的生成

    我们首先从标题"ExtJs动态grid的生成"开始,了解动态生成Grid的基本概念和实现方法。 动态生成Grid意味着在运行时根据需求创建和更新Grid组件,而不是在应用初始化时静态定义。这种灵活性允许开发者更好地响应数据...

    Ext框架的Grid使用介绍

    这篇"Ext框架的Grid使用介绍"将深入探讨Grid的使用方法和技巧。 Grid组件在EXT JS中扮演着数据表格的角色,可以展示多列数据,并且支持排序、分页、筛选、编辑等功能。它的灵活性在于能够根据需求定制各种复杂的...

    Ext grid 简单实例

    Ext Grid是Ext JS库中的一个核心组件,用于展示和操作数据集。在Web应用程序中,它经常被用来作为数据表格,允许用户查看、排序、筛选和编辑数据。在这个"Ext Grid简单实例"中,我们将探讨如何从Web服务提取数据并将...

    ext-grid+json简单应用

    在"EXT-GRID+JSON简单应用"中,我们将探讨如何使用EXT-JS的Grid组件与JSON数据源进行集成,以创建一个动态的数据表格。 EXT-JS的Grid组件允许开发者通过定义列模型、存储器和视图来展示数据。在JSON方面,它是一种...

    ext grid 显示数据

    在EXT JS这个强大的JavaScript框架中,Grid组件是用于展示大量结构化数据的核心组件。"ext grid 显示数据"这一主题,是深入理解EXT JS开发的关键知识点之一,特别是在处理表格和列表展示时。在"LearningExtJS 第五...

    ext grid 合计行

    找了半天,结果在extjs的老家找到一个前辈写的代码,可以在grid上面加上合计, <br>但是却只能合计grid里面的数据,但是我们平常一般是只显示20行或者30行,这样的合计就没有什么意义,我们的合计数据是单独从...

    EXT grid导出EXCEL

    EXT Grid是一款基于JavaScript的强大的数据网格组件,广泛用于Web应用程序中展示、操作和管理大量结构化数据。它提供了丰富的功能,如排序、过滤、分页、编辑等,并且支持自定义列、行以及多种交互模式。在EXT Grid...

Global site tag (gtag.js) - Google Analytics