`
fei_6666
  • 浏览: 203919 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ext grid 操作

阅读更多
Ext - Grid

    Grid是Ext框架中一个重要的组成部分。一般建立Grid主要实现数据的增删改查。
   
       建立一个Grid
       Grid一般有三个主要的内容,ds,cm,GridPanel
      
       var ds = new Ext.data.Store();
       var cm = new Ext.grid.ColumnModel();
       var grid = new Ext.grid.GridPanel();
      
        
       如果要页面载入时,Grid不显示,事件触发查询并建立Grid显示。很简单,将GridPanel建立在事件的function中就可以了。
       如果载入时就显示Grid,这里分几种情况:
                                       (1)页面载入时,Grid显示,并查询和显示出数据。
                                       (2)页面载入时,Grid显示,但不发送请求数据,事件触发查询。该查询条件已固定或不需要条件。
                                       (3)页面载入时,Grid显示,不查询数据,事件触发查询,该查询需要从页面上存在的文本框中获得数据作为条件。
                                   (4)与(3)相同,但是希望在Grid查询过程中有loadMask效果。
       对于1)
            直接在Ext.onReady()中建立GridPanel,并且ds调用load方法。
       对于2)
            在Ext.onReady()中建立GridPanel,而在事件的function中写ds.load()
       对于3)
            在Ext.onReady()中建立GridPanel,而此时的ds为一个假ds,它的作用仅仅是为了能够在页面载入时就显示Grid,而在事件的function中
       则再建立一个带有查询条件的ds,然后用该ds重新配置Grid.grid.reconfigure(ds,cm);
       对于4)
       查询的要求可由grid被新的ds重新配置的方法实现,但是会发现,这样做时,Grid的loadMask效果也不会出现了。有一个方法,就是在事件的
      function中,将Grid的render的div清空,即div.innerHTML="" 之后再重新建立一个Grid。这样做的缺点就是会在有很多代码重复。
       可能还会出现一些其他的function的调用以及无法取得某对象的问题。
      
       以下由第三种情况为例,来说明增删改查。
       建立:
          var fds = new Ext.data.Store();
          var cm = new Ext.grid.ColumnModel([
                       {header:'例子',width:100,dataIndex:'test',
                                 editor:new Ext.form.TextField({
                                          id:'test'
                                 })
                       }
          ]);
          var sm = new Ext.grid.RowSelectionModel();
          var grid = new Ext.grid.EditorGridPanel({
                          ds:fds,
                          cm:cm,
                          sm:sm,
                          width:200,
                          height:200,
                          title:'举例',
                          renderTo:Ext.get("testdiv")
          });
   这里建立EditorGridPanel,是可以进行编辑的Grid.
     1 查询:(点击按钮触发事件)
          function btnclick()
          {
            var Record = Ext.data.Record.create([
                           {name:'test'}
            ]); //此处将record单独提出方便操作
            var ds = new Ext.data.Store({
                          url:'访问的地址',
                          reader:new Ext.data.XmlReader({
                                      record:'item'
                          },Record)
            });
            ds.load();
            grid.reconfigure(ds,cm);
          }
    2 添加
         新建一条数据
         var r = new Record({
               test:'随便举个例子'
         });
        插入到表格指定行,n为要插到这行后(此处取了表格的行数,即插入到最后),m是编辑完毕后focus的位置列数
         var n = grid.getStore().getCount();
         grid.stopEditing();
         grid.getStore().insert(n,r);
         grid.startEditing(n,m);
    3 删除
     删除选定的行
       var r = grid.getSelectionModel().getSelected();
       ds.remove(r);
     删除多行,也一样,用getSelections()反法取到选中的行的一个数组,然后再一一删除。
     删除所有行
       ds.removeAll();     
    4 修改
      两种方法,一种直接手动点击需要修改的单元格,EditorGridPanell中的ClicksToEdit来设置点击几下进入编辑状态。
             还有一种从别处获得数据自动修改。
             假设一条新的数据,
              var nr = ['修改后的例子'];
            选定你要修改的行
              var recordtoedit = grid.getSelectionModel().getSelected();
                       或者var recordtoedit = ds.getAt(rowIndex);
               recordtoedit.set('test','修改后的例子');
      还可以在修改完毕后将修改过的行的颜色改变来标示出哪一条是修改过的。
          添加事件
            grid.on('afteredit',function(e){
                       var rowIndex = e.row;
                       grid.getView().getRow(rowIndex).style.backgroundColor="red";
                        //可以增加透明度效果  
                       grid.getView().getRow(number).style.filter = "alpha(opacity=50)";
                       grid.getView().getRow(number).style.MozOpacity =".5";
            });
分享到:
评论

相关推荐

    Ext Grid控件的高级应用

    本实例使用官方Ext3.1包 分五个部分 1.创建简单快捷的Ext Grid控件 代码清晰 2.Grid 读取 Xml 3.Grid 读取 json 4.Grid 读取 Excel 5.直接在 Grid 控件进行增删改查的操作 有任何疑问的同志欢迎提出即可谢谢

    ExtJS grid过滤操作

    ExtJS grid过滤操作,可以动态操作本地的store更改筛选的内容

    Ext GridPanel 中实现加链接操作

    Ext GridPanel 中实现加链接操作 Ext GridPanel 中实现加链接操作 Ext GridPanel 中实现加链接操作

    EXTGrid属性方法

    extjs 4.0 Grid属性方法以及常用操作,板面属性和对象

    Ext 开发指南 学习资料

    8.5.5. 反向操作,ext把json变成字符串 8.6. 小声说说scope 8.7. 菜单和工具条 8.7.1. 至简至廉的菜单 8.7.2. 丰富一点儿的多级菜单 8.7.3. 单选多选,菜单里搞这套 8.7.4. 小把戏,定制好的菜单 8.7.5. SplitButton...

    ext2 grid 封装 (包含增删改查 导入导出等操作)

    NULL 博文链接:https://babydeed.iteye.com/blog/1426419

    EXT2.0中文教程

    8.5.5. 反向操作,ext把json变成字符串 8.6. 小声说说scope 8.7. 菜单和工具条 8.7.1. 至简至廉的菜单 8.7.2. 丰富一点儿的多级菜单 8.7.3. 单选多选,菜单里搞这套 8.7.4. 小把戏,定制好的菜单 8.7.5. SplitButton...

    Ext+JS高级程序设计.rar

    8.3.2 在CRUD操作中restful的设置以及使用Ext.Direct的问题 247 8.4 ListView控件 248 8.5 本章小结 251 第四部分 Ext 扩展和Ext插件 第9章 Ext 扩展 254 9.1 利用Ext.extend实现继承 254 9.2 与Ext扩展相关的预备...

    带时分秒的EXT日期控件

    /** * 此组件为带时分秒的日期控件,在原DateTimeField修改 * 此功能较以前版本增加功能 * 1,在GRID中使用时,增加单元格处于编辑状态时的初始化此控件值 * 2,增加操作日选择器时初始化时分秒功能 * 3,增加点击...

    Ext Js权威指南(.zip.001

    Ex4.0共2个压缩包特性,《ext js权威指南》 ...10.3.4 数据汇总功能:ext.grid.featrue.abstractsummary与ext.grid.featrue. summary / 539 10.3.5 分组功能:ext.grid.featrue.grouping / 543 10.3.6 分组汇总...

    Ext 入门手册 从简入难 mvc机构 ext 介绍,组件操作,入门手册

    使用ext,mvc模式,开发的ext入门手册,包括介绍,布局案例,组件使用案例,组件查询案例,grid数据操作案例,是对ext的总结技术文档以及实例。

    ExtJs grid多选时获取选中的所有值

    ExtJs grid多选时获取选中的所有值,以及其他相关的操作

    .net EXT学习资料与源码

     主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据需要按需加载您想要的...

    EXT教程EXT用大量的实例演示Ext实例

    8.5.5. 反向操作,ext把json变成字符串 8.6. 小声说说scope 8.7. 菜单和工具条 8.7.1. 至简至廉的菜单 8.7.2. 丰富一点儿的多级菜单 8.7.3. 单选多选,菜单里搞这套 8.7.4. 小把戏,定制好的菜单 8.7.5. ...

    Ext GridPanel加载完数据后进行操作示例代码

    Ext GridPanel加载完数据后进行操作,比如load数据之后选定某些行数据,下面有个示例,需要的朋友可以参考下

    AnyFo - Util - Json4Ext:通用ExtJS数据交换处理

    在大家开发的系统中,如果程序用ExtJS做表现层,那么就需要使ExtJS开发的界面和后台Java代码中生成的数据交互,一般来说,可以选 择XML格式和Json格式的数据进行交互,但是XML格式的数据操作相对繁琐,因此,大部分...

    实现grid行 列的自定义添加和删除 绝对原创

    这两天项目需要,临时做了一个,没有封装,该grid可以实现列和行的自定义添加和删除,包括修改标题,以及列的右击添加事件。希望对你们有所帮助!双击列名可以对列名进行修改,右键列名可以选择左侧和右侧添加列以及...

    ext.net示例

    包括布局、事件、grid的绑定(包含增删改)以及数据库分页还有表单绑定取值和dateview控件的使用,树的使用,包含拖拉,修改等操作 dll文件为extnet3.5,可自行下载黏贴到要目录下的net35文件夹里即可

    一个使用 ext 编写的类似于 Windows 系统的操作页面

    一个使用 ext 编写的类似于 Windows 系统的操作页面 里面有 一些 GRID ,TAB的实例 material文件夹是主要代码 其他的在EXTJS文件夹

Global site tag (gtag.js) - Google Analytics