`
starbhhc
  • 浏览: 655224 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Extjs 动态生成表格

阅读更多
在web显示数据时,会遇到grid的列数和行数不确定的这种情况。如何来根据数据动态的创建表格呢?
Extjs 的json data给我们带来了一个很好的比较简单的方法。
   要创建一个grid需要确定它的列数,再根据数据的数量就可以确定行数了。
   看到有人用过一种方法就是讲列的属性和数据一起放在json data里去,这样可以达到效果,但是不难发现,这样的话,就很难进行分页或者更新表格里的数据。
   其实我们可以结合extjs官网上的那种固定列数的访问方法来动态生成表格。
   首先通过Ajax从服务端反回列的信息,封装成json ,表格数据通过另一个ajax请求来获得,因为列已经获得,所以可以将此封装成一个store.这样大功告成,生成grid所需要的,store,和cm
   demo 源码如下:(由于考虑到代码简介明了,我将数据写死在了js 中):



Ext.onReady(function(){

    // NOTE: This is an example showing simple state management. During development,
    // it is generally best to disable state management as dynamically-generated ids
    // can change across page loads, leading to unpredictable results.  The developer
    // should ensure that stable state ids are set for stateful components in real apps.
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
    var myData =[[1,1,1,1],
                 [2,2,2,2]
                 ];
      
    // example of custom renderer function
    function change(val){
        if(val > 0){
            return '<span style="color:green;">' + val + '</span>';
        }else if(val < 0){
            return '<span style="color:red;">' + val + '</span>';
        }
        return val;
    }
    // example of custom renderer function
    function pctChange(val){
        if(val > 0){
            return '<span style="color:green;">' + val + '%</span>';
        }else if(val < 0){
            return '<span style="color:red;">' + val + '%</span>';
        }
        return val;
    }
    // create the data store
  
    var fieldDatas = "{'columModle':["+
                "{'header': 'seq','dataIndex': 'number','width':40},"+
                "{'header': 'code','dataIndex': 'text1'},"+
                "{'header': 'name','dataIndex': 'info1'},"+
                "{'header': 'price','dataIndex': 'special1'}"+
                "],'fieldsNames':[{name: 'number'},"+
                "{name: 'text1'}, {name: 'info1'},"+
                "{name: 'special1'}]}";

    var json = new Ext.util.JSON.decode(fieldDatas);
    var cm = new Ext.grid.ColumnModel(json.columModle);
    var store = new Ext.data.SimpleStore({
        fields: json.fieldsNames
    });
  
    store.loadData(myData);
   // var ds = new Ext.data.JsonStore({
   //         data:store.toSource(),
   //         fields:json.fieldsNames
   //         });


    // create the Grid
    var grid = new Ext.grid.GridPanel({
            height:200,
            width:400,
            region: 'center',
            split: true,
            border:false,
            store:store,
            cm:cm
            });

    grid.render('grid-example');
});
来源:(http://blog.sina.com.cn/s/blog_5e9040780100cdps.html) - Extjs 动态生成表格_匿名_新浪博客
分享到:
评论

相关推荐

    extjs动态生成表格,前台+后台

    在本文中,我们将深入探讨如何使用ExtJS框架在前端动态生成表格,并结合后端数据进行展示。ExtJS是一个强大的JavaScript库,专用于构建富客户端Web应用程序,尤其在创建交互式用户界面方面表现突出。动态生成表格是...

    EXTJS代码生成器

    EXTJS代码生成器是一款专为开发人员设计的工具,它能够自动生成基于EXTJS框架的MVC模式应用程序的代码,显著提升开发效率。EXTJS是一个强大的JavaScript库,用于构建富客户端Web应用,提供了丰富的组件库和强大的...

    extjs动态表格实例(封装GRID,从STRUTS2读取后台数据 )

    在这个"extjs动态表格实例"中,我们将探讨如何使用ExtJS封装Grid并从Struts2框架的后台获取数据。 首先,让我们了解ExtJS中的Grid组件。Grid是ExtJS的一个关键组件,它用于展示结构化数据,并支持多种操作,如排序...

    extjs 实现动态表头

    动态表头是ExtJS中一个高级特性,它允许开发者根据需要在运行时动态地创建和修改表格的列结构。这在处理数据展示和操作时具有很大的灵活性,尤其在数据字段不确定或需要自定义的情况下非常实用。 标题“extjs 实现...

    EXTjs4.0以下合并表格

    4. **Renderer Function**: 渲染器函数是EXTjs中一个重要的概念,它允许我们根据数据动态地生成单元格的内容和样式。在合并表格的场景中,我们可以在渲染器中添加逻辑判断,根据数据决定是否合并单元格。 5. **...

    extjs动态表单

    5. **布局(Layout)**:ExtJS提供多种布局模式,如表格布局、流式布局、绝对布局等,可以根据动态表单的复杂性选择合适的布局,确保界面的美观和易用。 6. **事件处理(Event Handling)**:动态表单中的事件处理...

    ExtJS界面生成工具

    "ExtJS界面生成工具"是针对这个框架开发的辅助软件,它的主要目的是简化开发流程,通过可视化的方式快速生成ExtJS应用的用户界面。 这个工具的优点在于,它能显著减少手动编写HTML和JavaScript代码的时间,使得...

    ExtJs代码自动生成

    在开发过程中,有时需要根据数据库结构或者业务需求自动生成相应的ExtJS代码,以提高开发效率和代码一致性。下面将详细解释如何使用ExtJS进行代码自动生成,以及各组件类型的中文解释。 1. **数据库字段的映射** ...

    ExtJS4 2学习 21 动态菜单与表格数据展示操作总结篇

    在"ExtJS4 2学习 21 动态菜单与表格数据展示操作总结篇"中,我们将深入探讨两个核心组件:动态菜单(Dynamic Menus)和表格数据展示(Grid Data Display),以及如何在实际应用中进行操作。 动态菜单在Web应用中...

    extjs动态表头,绝对的好东西啊

    动态表头是ExtJS中的一个高级特性,它允许用户在运行时自定义表格的列结构,提供了高度可配置和交互性的体验。这个"extjs动态表头"的资源很可能是一个插件或组件,名为`Ext.ux.grid.DynamicGridPanel.js`,它扩展了...

    Extjs4.2 Grid filter Demo 表格过滤实验

    这是利用sencha cmd 生成的GridFilterDemo工程中的app和build文件夹,其余文件过大并且与主题无关,因此未包含。具体方法,请参看我的博客: 《Extjs4.2 Grid Filter Feature 表格过滤特性》

    ExtJs 连接数据库并且生成动态树

    在“ExtJs 连接数据库并且生成动态树”这个主题中,我们将探讨如何利用ExtJs来连接后端数据库,并动态生成树形结构来展示数据。 首先,要实现ExtJs连接数据库,你需要一个服务器端的数据接口,它可以是基于PHP、...

    heightChart 与extjs整合 动态生成历史曲线 和实时曲线

    当EXTJS与HeightChart结合时,EXTJS可以提供用户界面和数据管理的基础框架,而HeightChart则负责动态生成曲线图表。这种整合可以实现以下功能: 1. **数据绑定**:EXTJS的数据模型和Store组件可以与HeightChart对接...

    ExtJS(ajax框架) 4.2.1

    自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变...

    ExtJS 界面设计器

    这个工具允许开发者通过拖放组件和直观地调整属性来设计用户界面,从而自动生成ExtJS脚本。 1. **ExtJS框架**:ExtJS是Sencha公司开发的一个开源JavaScript库,它提供了大量的预定义组件,如表格、面板、菜单、按钮...

    轻松搞定Extjs 带目录

    对于HTML元素的操作和动态模板的生成,Extjs提供了`Ext.DomHelper`和`Ext.XTemplate`等工具类。格式化功能则能够使数据显示更加友好和标准化。 Extjs的组件系统非常丰富,包括按钮、日期选择器、ComboBox等,它们都...

    ASP.NET MVC5 +ExtJS6 表格示例

    前端使用ExtJS6的Grid组件展示这些数据,创建一个动态、可交互的表格。用户可以通过这个表格进行筛选、排序,甚至编辑数据,而这些操作会通过Ajax请求反馈到服务器。 在这个学习示例中,可能包含以下关键知识点: ...

    extjs实现excel导出

    总结起来,通过上述步骤,我们可以使用ExtJS作为前端框架,结合Apache POI库在服务器端生成Excel文件,并将其以HTTP响应的方式发送给客户端,实现在Web应用中导出Excel的功能。这种方式允许用户在前端界面上触发导出...

    Extjs3.2.0+asp.net动态Tree

    在“Extjs3.2.0+asp.net动态Tree”项目中,主要涉及的技术点包括: 1. **ExtJS TreePanel**:TreePanel是ExtJS中的一个组件,用于展示层级结构的数据,通常用于表示目录结构或者组织结构。在3.2.0版本中,TreePanel...

    extjs帮助文档

    例如,"ext代码生成器"可能包括生成表格、窗体、菜单等常见UI组件的功能。 "HTML.CHM"可能是一个关于HTML和Web开发的基础参考资料,对于理解EXTJS如何与HTML页面结合以及如何构建Web应用的基础结构非常有帮助。HTML...

Global site tag (gtag.js) - Google Analytics