首先定义一个EditorGridPanel,

[c-sharp] view plaincopyprint?
  1. var maintainceOrderGrid = new Ext.grid.EditorGridPanel( {// 创建Grid表格组件
  2. applyTo : 'maintainorderinfo-grid-div',// 设置表格现实位置
  3. frame : true,// 渲染表格面板
  4. tbar : toolbar,// 设置顶端工具栏
  5. stripeRows : true,// 显示斑马线
  6. autoScroll : true,// 当数据查过表格宽度时,显示滚动条
  7. store : maintainceProjectStore,// 设置表格对应的数据集
  8. viewConfig : {// 自动充满表格
  9. autoFill : true
  10. },
  11. sm : sm,// 设置表格复选框
  12. cm : cm,// 设置表格的列
  13. bbar : new Ext.PagingToolbar( {
  14. pageSize : 25,
  15. store : maintainceProjectStore,
  16. displayInfo : true,
  17. displayMsg : '显示第{0}条到{1}条记录,一共{2}条记录',
  18. emptyMsg : '没有记录'
  19. })
  20. });

接着定义grid中用到的sm和cm,

[c-sharp] view plaincopyprint?
  1. var sm = new Ext.grid.CheckboxSelectionModel();// 创建复选择模式对象
  2. var cm = new Ext.grid.ColumnModel( [// 创建表格列模型
  3. new Ext.grid.RowNumberer(), sm, {
  4. header : "维修价格",
  5. width : 60,
  6. dataIndex : 'price',
  7. sortable : true,
  8. editor : new Ext.form.NumberField( {
  9. editable : true,
  10. allowNegative : false,
  11. allowBlank : false,
  12. decimalPrecision : 2,
  13. minValue : 0
  14. //  ,
  15. //  maxValue : 1
  16. })
  17. } ]);

再定义一个保存维修价格的toolbar,用于调用保存维修价格的方法。

[c-sharp] view plaincopyprint?
  1. var toolbar = new Ext.Toolbar( [  {
  2. text : '保存维修价格',
  3. iconCls : 'add',
  4. handler : setMaintaincePrice
  5. } ]);

保存维修价格的方法如下:

[c-sharp] view plaincopyprint?
  1. function setMaintaincePrice() {//设置维修价格
  2. var mr = maintainceProjectStore.getModifiedRecords();// 获取所有更新过的记录
  3. var recordCount = maintainceProjectStore.getCount();// 获取数据集中记录的数量
  4. if (mr.length == 0) {
  5. Ext.MessageBox.alert('提示', '没有修改数据!');
  6. }
  7. else
  8. {
  9. var msgTip = Ext.MessageBox.show( {
  10. title : '提示',
  11. width : 250,
  12. msg : '正在提交更改请稍后......'
  13. });
  14. var recordModStr = "[";// 以josn方式保存数据
  15. for ( var i = 0; i < mr.length; i++) {
  16. recordModStr += "{maintainceProjectId:"
  17. + mr[i].data["maintainceProjectId"] + ",price:"
  18. + mr[i].data["price"] + "}";
  19. if (i < mr.length - 1)
  20. recordModStr += ",";
  21. }
  22. recordModStr += "]";
  23. var requestConfig = {
  24. //url : 'material.do?method=modifyMaterialQuantity×tamp=' + new Date(),
  25. url : 'maintianceproject.do?method=setMaintaincePrice×tamp=' + new Date(),
  26. jsonData : recordModStr,
  27. params : {
  28. mlist : recordModStr
  29. },
  30. callback : function(options, success, reponse) {
  31. msgTip.hide();
  32. if (success) {
  33. Ext.Msg.alert('提示', '保存成功');
  34. maintainceProjectStore.commitChanges();
  35. } else {
  36. Ext.Msg.alert('提示', '保存失败');
  37. }
  38. }
  39. }
  40. Ext.Ajax.request(requestConfig);
  41. }

这里使用了

[c-sharp] view plaincopyprint?
  1. Ext.Ajax.request(requestConfig);

Ajax动态向后台发送请求的方法。这也是ExtJs前后台传递消息的有效方法之一。

下面列出后台读取josn的方法:

[c-sharp] view plaincopyprint?
  1. private ModelAndView setMaintaincePrice(HttpServletRequest request,
  2. HttpServletResponse response) throws IOException {
  3. String jsonstr = request.getParameter("mlist");
  4. // test
  5. System.out.println(jsonstr);
  6. jsonstr = URLDecoder.decode(jsonstr, "utf-8");
  7. JSONArray array = JSONArray.fromObject(jsonstr);
  8. MaintianceprojectForm[] obj = new MaintianceprojectForm[array.size()];
  9. boolean b = false;
  10. for (int i = 0; i < array.size(); i++) {
  11. JSONObject jsonObject = array.getJSONObject(i);
  12. obj[i] = (MaintianceprojectForm) JSONObject.toBean(jsonObject,
  13. MaintianceprojectForm.class);
  14. // test
  15. System.out.println(obj[i].getMaintainceProjectId() + "*****"
  16. + obj[i].getPrice());
  17. Maintianceproject record = new Maintianceproject();
  18. record.setPrice(obj[i].getPrice());
  19. b = this.getMaintianceprojectService().updateMaintaincePrice(
  20. obj[i].getMaintainceProjectId(), record);
  21. if (b == false)
  22. break;
  23. }
  24. if (b) {
  25. response.getWriter().write("{success:true}");
  26. } else {
  27. response.getWriter().write("{success:false}");
  28. }
  29. return null;
  30. }

本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2010/12/29/2297054.html,如需转载请自行联系原作者

Ext.grid.EditorGridPanel使用方法相关推荐

  1. Ext.grid.EditorGridPanel的使用、修改记录的获取及提交

    <HTML> <HEAD>    <TITLE>可编辑表格面板EditorGridPanel</TITLE>     <metahttp-equi ...

  2. Ext.grid.EditorGridPanel viewConfig 设置表格 UniDBGrid

    extjs命令 必须在UniFormCreate事件里写 //可以复制单元格文字 UniDBGrid1.JSInterface.JSConfigObject('viewConfig', 'enable ...

  3. [转]Ext Grid控件的配置与方法

    http://www.blogjava.net/wangdetian168/archive/2011/04/12/348651.html 1.Ext.grid.GridPanel 主要配置项: sto ...

  4. ext Grid(三)

    想让用户体验更高就应该让用户可以在自己刚刚查询出来的数据表格上进行数据编辑,可以进行增删改查.可编辑的表格就在在想要能编辑的列里注册一个TextField组件,这个组件需要使用Ext.grid.Gri ...

  5. 关于Ext中EditorGridPanel数据校验

    用了2年的Ext 渐渐对Ext熟络起来,经常去看下源码,自己瞎琢磨些功能,最近做了个EditorGridPanel数据校验,原理不难,不过绝对原创,有点意思,发下和大家分享~ 原理:通过EditorG ...

  6. Ext.grid.ColumnModel设置

    Ext.grid.ColumnModel 用于定义Grid的列 用例 var colModel = new Ext.grid.ColumnModel([ {header: "Ticker&q ...

  7. ext Ext.grid.ColumnModel自适应宽度去除右边空白

    列自适应玩了以后发现右边有一列空白,加上scrollOffset: 0//去除最右边空白 grid = new Ext.grid.EditorGridPanel({ region:"cent ...

  8. 使用Dynamic LINQ实现Ext Grid的远程排序

    要实现Ext Grid的远程排序其实很简单,只要修改查询语句的排序关键字就可以了,但是,如果你的项目是使用Linq进行开发的,会发现动态修改排序关键字并不是那么容易的事,解决办法就是使用LINQ Dy ...

  9. Ext DeskTop的使用方法简易教程及相关例子Demo(转)

    Ext DeskTop的使用方法简易教程及相关例子Demo(转) ExtJS 2010-12-31 10:11:15 阅读196 评论0   字号:大中小 订阅 http://qwikioffice. ...

  10. 完善ext.grid.panel中的查询功能(紧接上一篇)

    今天的代码主要是实现,Ext.grid.panel中的查询,其实我也是一名extjs新手,开始想的实现方式是另外再创建一个新的grid类来存放查询出的数据(就是有几个分类查询就创建几个grid类),这 ...

最新文章

  1. Equalizing Two Strings 冒泡排序or树状数组
  2. UML总结—时序图(Sequence Diagram)和协作图(Collaboration Diagram)
  3. UWP使用AppService向另一个UWP客户端应用程序提供服务
  4. 倒排文件索引(Inverted File Index)的建立
  5. System.Diagnostics.Process 执行.EXE
  6. 第一章:React入门
  7. java四类八种基本数据类型
  8. js中arguments的用法
  9. 【CV】如何使用Tensorflow提供的Object Detection API --2--数据转换为TFRecord格式
  10. 使用lua实现redis分布式锁
  11. 图书管理系统软件测试报告_软件测试新手入门小知识点,一定要牢记
  12. 【MQTT编程】Last will and Testament(LWT Payload设置)
  13. 分数乘法怎么用计算机计算,分数乘法计算与简单运用
  14. 输入一个字符串,判断它的所有字符中否全部是大写字母,如不是,统计小写字母个数,并将其转换成大写字母后输出
  15. 精英都是方法控,做人做事必备的100套思维框架工具
  16. Oracle_02查询函数
  17. import()函数和import语句
  18. 嵌入式软件工程师一般都在开发什么?
  19. 20 函数的极值和最大(小)值
  20. RFI、RFQ、RFP、IFB分别是什么阶段?

热门文章

  1. OpenDrive学习笔记
  2. 2021-09-28智能门锁的设计新方案
  3. 软件质量管理-考试复习总结
  4. Java 输入输出流 解决中文乱码问题【不一定详细但一定实用篇】【全文4800字】
  5. 电脑窗口切换常用的快捷键有哪些
  6. python 调用bat失败_死机、卡顿、蓝屏,Python部门的老江湖告诉我的一些超级变态代码...
  7. 已知文件url,批量下载文件
  8. 《软件设计师教程最新版(第三版》
  9. VS2010 快捷键
  10. ZigBee协议栈(一)--协议栈介绍