重要的方法:grid.getStore().getModifiedRecords();获得编辑后的结果

text: "增加",

handler: function() {

var Plant = store.recordType;

var p = new Plant({

common: 'New Plant 1',

light: 'Mostly Shade',

price: 0,

availDate: (new Date()).clearTime(),

indoor: false

});

grid.stopEditing();

store.insert(0, p);  //插入第一行

grid.startEditing(0, 0);

Ext.BLANK_IMAGE_URL = '../../resources/images/default/s.gif';
Ext.QuickTips.init();
Ext.onReady(function() {  //Ext.Msg.alert("sf0", "sdf");  //格式化日期  function formatDate(value) {  return value ? value.dateFormat('Y年m月d日') : '';  }  // 别名  var fm = Ext.form;  //checkbox选择模型  var sm = new Ext.grid.CheckboxSelectionModel({ checkOnly: true });  //构造一个只能包含checkbox的列  var checkColumn = new Ext.grid.CheckColumn({  header: 'Indoor?', dataIndex: 'indoor',  width: 55  });  // 构造ColumnModel  var cm = new Ext.grid.ColumnModel({  columns: [  sm,  {  id: 'common',  header: 'Common Name',  dataIndex: 'common',  width: 220,  // 使用上边定义好的别名  editor: new fm.TextField({  allowBlank: false  })  }, {  header: 'Light',  dataIndex: 'light',  width: 130,  editor: new fm.ComboBox({  typeAhead: true,  triggerAction: 'all',  transform: 'light',  lazyRender: true,  listClass: 'x-combo-list-small'  })  }, {  header: 'Price',  dataIndex: 'price',  width: 70,  align: 'right',  renderer: 'usMoney',  editor: new fm.NumberField({  allowBlank: false,  allowNegative: false,  maxValue: 100000  })  }, {  header: 'Available',  dataIndex: 'availDate',  width: 95,  renderer: formatDate,  editor: new fm.DateField({  format: 'Y年m月d日',  minValue: '01/01/06',  disabledDays: [0, 6],  disabledDaysText: 'Plants are not available on the weekends'  })  },checkColumn  ],  defaults: {  sortable: true  }  });  // 构造一个Store对象  var store = new Ext.data.Store({  url: 'plants.xml',  reader: new Ext.data.XmlReader(  {  record:'plant' },  [  { name: 'common', type: 'string' },  { name: 'botanical', type: 'string' },  { name: 'light' },  { name: 'price', type: 'float' },  { name: 'availDate', mapping: 'availability', type: 'date', dateFormat: 'm/d/Y' },  { name: 'indoor', type: 'bool' }  ]  ),  sortInfo: { field: 'common', direction: 'ASC' }  });  // 构造可编辑的grid  var grid = new Ext.grid.EditorGridPanel({  //sm: new Ext.grid.RowSelectionModel({ singleSelect: false }),  sm: sm,  store: store,  cm: cm,  renderTo: 'grid',  width: 600,  height: 300,  autoExpandColumn: 'common',  title: 'Edit Plants?',  frame: true,  plugins: checkColumn,  clicksToEdit: 1,  //默认2次双击才触发编辑框事件listeners: {  "afterEdit": {  fn: afterEdit,  scope: this  }  }, bbar: new Ext.PagingToolbar({pageSize : 5,store : store,firstText : '第一页',nextText : '下一页',prevText : '上一页',refreshText : '刷新',lastText : '最后一页',beforePageText : '当前',afterPageText : '页/共{0}页',displayInfo : true,displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条',emptyMsg : "没有记录"}),tbar: [{  text: "保存",  handler: function() { var  mod=grid.getStore().getModifiedRecords();for ( var i = 0; i < mod.length; i++) {alert(mod[i].data.common);}var mod = store.modified;  // updateData(mod);  }  },  '-',  {  text: "增加",  handler: function() {  var Plant = store.recordType;  var p = new Plant({  common: 'New Plant 1',  light: 'Mostly Shade',  price: 0,  availDate: (new Date()).clearTime(),  indoor: false  });  grid.stopEditing();  store.insert(0, p);  grid.startEditing(0, 0);  }  },  " ",  {  text: "删除",  handler: function() {  var selModel = grid.getSelectionModel();  if (selModel.hasSelection()) {  Ext.Msg.confirm("警告", "确定要删除吗?", function(button) {  if (button == "yes") {  var selections = selModel.getSelections();  Ext.each(selections, function(item) {  store.remove(item);  // store.removed.push(item);  });  }  // alert(store.removed.length);  });  }  else {  Ext.Msg.alert("错误", "没有任何行被选中,无法进行删除操作!");  }  }  }  ]  });  // 触发数据的加载  store.load();  //发送数据到服务器端进行更新
//    function updateData(mod) {
//        var json = [];
//        Ext.each(mod, function(item) {
//            json.push(item.data);
//        });
//        if (json.length >= 0) {
//            Ext.Ajax.request({
//                url: "EditGrid.aspx",
//                params: { data: Ext.util.JSON.encode(json) },
//                method: "POST",
//                success: function(response) {
//                    Ext.Msg.alert("信息", "数据更新成功!", function() { store.reload(); });
//                },
//                failure: function(response) {
//                    Ext.Msg.alert("警告", "数据更新失败,请稍后再试!");
//                }
//            });
//        }
//        else {
//            Ext.Msg.alert("警告", "没有任何需要更新的数据!");
//        }
//    }  //编辑后触发的事件,可在此进行数据有效性的验证  function afterEdit(e) {  if (e.field == 'common') {  if (e.value == '123') {  Ext.Msg.alert("错误", "大笨是人物不是植物", function() { grid.startEditing(e.row, e.column) });  }  }  }
});  

extjs-EditorGridPanel学习相关推荐

  1. Extjs——初步学习

        最近在系统学习Extjs框架,从刚一开始接触Extjs到现在发现对Extjs越来越喜欢了.刚开始只是想在页面上实现一个展示大量图片的功能,就像在线订餐系统展示菜单的效果那样,每幅图片上都有一些 ...

  2. Extjs EditorGridPanel中ComboBox列的显示问题

    EditorGridPanel中嵌入ComboBox通常不会正常显示ComboBox的store中本想显示字段,而是显示的EditorGridPanel中 store的dataindex指定的字段内容 ...

  3. ExtJs+php学习长连接comet技术开端。

    传统AJAX技术  JavaScript 调用 XMLHttpRequest 对象发出 HTTP 请求,JavaScript 响应处理函数根据服务器返回的信息对 HTML 页面的显示进行更新. 使用 ...

  4. ExtJS MVC 学习手记3

    在演示应用中,我们已经创建好了viewport,并为之添加了一个菜单树.但也仅仅是这样,点击树或应用的其他地方获得不到任何响应.这个演示应用还是一个死的应用. 接下来,我们让这个应用活起来. 首先,给 ...

  5. ExtJS MVC学习手记 1

    开发环境: ExtJS4.2 eclipse indigo 开发目标  搭建项目框架,创建viewport 开发步骤说明 这次主要使用extjs4的mvc模式创建viewport.籍此初步了解mvc模 ...

  6. 时间紧任务重---extjs的学习就这么开始吧

    我们的extjs借助了一个模板引擎--artTemplate,它是一个开源的项目,不多说,给个链接吧:http://aui.github.io/artTemplate/ 直接上代码: <!DOC ...

  7. ExtJS视频学习笔记

    JS的面向对象编程 Ajax熟练 JavaScript设计模式 征服Ajax Web 2.0开发技术详解(附光盘) 百度,谷歌,开源的论坛 官方的demo和API文档 Reader Ext.data. ...

  8. ExtJS EditorGridPanel 示例之Array格式Store前后台增删改查(不支持分页)

    示例入口页面html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  9. ExtJS EditorGridPanel 示例之xml格式Store前后台增删改查

    程序入口html页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  10. ExtJS EditorGridPanel 示例之Array格式(自定义Array解析器)Store前后台增删改查

    本示例入口html页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

最新文章

  1. 2019需要关注的几大AI趋势
  2. linux磁盘分配方案,安装Linux系统磁盘分配方案.doc
  3. 将数字字符串格式化为指定长度
  4. cmake / cmake --build 如何理解
  5. linux 下运行 tomcat
  6. HTTPS请求实现框架
  7. C# 动态语言扩展(学习笔记)
  8. 机票预定系统类图_出行干货|在法国,廉价机票攻略
  9. linux下的shell操作mysql
  10. 在Ubuntu系统中重置root密码
  11. Qt不规则窗体和按键
  12. 计算机网络学习(四)网络层
  13. 数据库系统概论(第五版)概念大全 —— 第一章
  14. 使用PPT画图,取消自动选点(自动吸附点)解决方案
  15. java定义一个short_JDK源码解读第七章:java.lang.Short
  16. between oracle的用法,关于 oracle between and的用法! | 学步园
  17. VM16Pro安装win7
  18. 玩客云5.9千兆固件、docker、青龙面板
  19. 关于人工智能不会使大脑变懒惰的议论文_台湾人工智能学校执行长陈升玮:孩子成为这型人,就不怕被AI取代...
  20. python xlwings库对于excel单元格的操作

热门文章

  1. 数学思想——1.SEIR模型
  2. 简单爬取豆瓣电影相关信息
  3. uboot启动过程教程详解
  4. ffmpeg硬解码与软解码的压测对比
  5. IDEA setup 选择目录安装不了_在 Ubuntu 18.04 中安装几个常用软件(一)
  6. 区块链开发者观点:来自 MYKEY 的胖哥 Ricky
  7. 手机组态软件利用4G网络直接通信三菱E700变频器
  8. 怎样才能掘金知识付费项目?
  9. html5 url颜色,HTML5input新增type属性color颜色拾取器的实例代码
  10. Android-Framework-GPS定位原理和修改