`
JavaCrazyer
  • 浏览: 2992811 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

Ext之ExtGrid增删改查询回顾总结

阅读更多

学习Ext已经有些许时间了,发现实际运用过程中ExtGrid系列还是最为常用的,本来想自己写些话语来总结的,无意间看到有位仁兄早就总结了,故冒犯贴在此处,以便以后翻阅,还望见谅

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";
            });
        
原文出处:
http://hi.baidu.com/mousetrapj/blog/item/4e58d501ead2c807728da546.html/cmtid/f1f0aa5c11b06946faf2c00c

0
0
分享到:
评论

相关推荐

    EXT构造动态树 包括增删改操作

    ext开发的动态树的生成,里面还有对树的各种增删改操作

    Ext+ssh+sybase增删改

    刚刚学ext感觉还好,第一次使用做了个增删改,和登录。

    Ext.net后台分页增删改

    Ext.net数据库后台分页,树状图,Grid增删改查,由于公司下个项目要用到Ext.net,所以就写了一个小小的列子,说实话Ext.net网上资源太少了!一直在琢磨中!

    ext2.0 树的增删改操作

    该项目实现了树的增删改操作,还有下拉树;该项目的使用说明在压缩包中, 我也是ext的初学者,为了在以后的项目中使用,此处做已备份,希望对大家也有所帮助

    ext2.0树的增删改

    实现的树的增删改操作,并且添加了权重,及树节点的排列顺序, 备以后使用,同时希望能为用的的兄弟姐妹提供以下帮助,不足之处希望多多指点

    Ext+2.0+Grid的增删改查.txt

    Ext+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txtExt+2.0+Grid的增删改查.txt

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

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

    jq-extgrid v1.2 表格插件

    extgrid 是一款jquery上的gird插件 界面风格采用了类似easyui extjs 界面风格样式 可通过css修改自己想要的样式 extgrid具有列大小 位置改变 排序 分组 分页 工具栏 扩展行 rowNumber 多选列 编辑列 行列锁 ajax...

    Ext grid导出excel

    支持Ext3 Ext4导出excel,客户端导出表格,支持各种主流浏览器。

    EXT GRID使用

    EXT GRID使用EXT GRID使用 EXT GRID使用EXT GRID使用

    SQL Server + VS2005 + 3层结构 + EXT2.0 + ajax 的 增删改 的例子

    总结了一些网上别人写的,改了改!如有机会,我绝对不用它!!!!! 大家一定要下载 ASPAJAXExtSetup.msi

    ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询

    ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询...

    Ext Demo grid的增删改查例子

    接下来 在mysql里建立 数据库位ext的库 再去项目中 src/META-INF/persistence.xml的配置文件里吧<!-- <property name="hibernate.hbm2ddl.auto" value="update" /> -->这句话的注释去掉 好了 部署项目到tomcat上 ...

    Ext grid 分页实例源码

    Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码

    Ext表格中增删改查实例

    自己做的在可编辑表格中的增删改查操作。。。。。。

    Ext Grid控件的高级应用

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

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

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

    封装Ext.grid.Grid+dwr实现增删该查

    封装Ext.grid.Grid+dwr实现增删该查

    ext grid 合计行

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

    EXT2.0 带无限极树的 增删改差 是用jsp+servlet+ext2.0实现的

    特别简单的EXT2.0应用 绝对适合初学者 是用jsp+servlet ext2.0

Global site tag (gtag.js) - Google Analytics