`
Everyday都不同
  • 浏览: 724243 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

【Ext】EditorGrid绑定后台数据

    博客分类:
  • jsp
阅读更多

很久没有更新了……

 

在使用Ext JS作为前端开发框架时,避免了写原生态table之类的元素。现在有一需求是写可编辑单元格的表格,并且需要和后台数据动态绑定起来。下面就简单记录下过程,以便日后供自己和需要的同行参考~

 

前端部分(核心)

1)先写一个div容器

 

<div id="grid"></div>

 2)js部分:

 

 

Ext.onReady(function(){
var column = new Ext.grid.ColumnModel([
	    {header:'描述',dataIndex:'memo',width:200, align:'center'},
	    {header:'时间',dataIndex:'time',width:200, align:'center'},
	    {header:'满意',align:'center', dataIndex:'satisfied',width:100,editor:new Ext.grid.GridEditor(
		        new Ext.form.TextField({
		            allowBlank:false
		        })
		    )},
	    {header:'一般',align:'center', dataIndex:'general',width:100,editor:new Ext.grid.GridEditor(
		        new Ext.form.TextField({
		            allowBlank:false
		        })
		    )},
	    {header:'不满意',align:'center', dataIndex:'unsatisfied',width:100,editor:new Ext.grid.GridEditor(
		        new Ext.form.TextField({
		            allowBlank:false
		        })
		    )},
	]);
//这里就是从后台searchGrid方法获取数据的部分,填充到store里。
	var store= new Ext.data.JsonStore({
	    //proxy:new Ext.data.MemoryProxy(data),
	    proxy:new Ext.data.HttpProxy({
	    	//type:'ajax',
	    	url:'./setting.do?method=searchGrid'
	    }), 
	    fields:['id','memo','time','satisfied','general','unsatisfied']
	    //这些是要跟后台数据Map的key要一一对应的。
	}); 
	store.load();

	var grid1=new Ext.grid.EditorGridPanel({
	    renderTo:"grid",
	    store: store,
	    height:200,
	    clicksToEdit:1,
	    cm:column       
	});
});

 

//---------------------------------------------------------------------------------------------------------------------------

数据写死的话就是proxy:new Ext.data.MemoryProxy(data),其中data是类似以下这种数据结构:

var data = [

          ['新客户工作时间', '8:30-17:30', 4, 2, -1],

          ['新客户非工作时间', '17:30-8:30', 4, 2, -1],

          ['老客户五星以上工作时间', '8:30-17:30', 4, 2, -1],

          ['老客户五星以上非工作时间', '17:30-8:30', 4, 2, -1],

          ['老客户五星以下工作时间', '8:30-17:30', 4, 2, -1],

          ['老客户五星以下非工作时间', '17:30-8:30', 4, 2, -1]

          ]; 

//---------------------------------------------------------------------------------------------------------------------------

 

后台部分

searchGrid方法获取到的数据是一个List<Map<String, Object>> list结构的数据,而传递给前端的则是一个[{'id':1, 'name':'Lily', 'age':23, 'memo':'sssssssss'}, {'id':2, 'name':'Lily2', 'age':33, 'memo':'sssssssss'}, {'id':3, 'name':'Lily3', 'age':43, 'memo':'sssssssss'}, ...]形式的json,  即json串的数组。

JsonUtils.convertToString(list)

 

 

同样,要将EditorGrid表格数据提交给后台也需要提交一个类似结构的json串的数组,获取方式如下:

 

var data = [];
 for(var i=0; i<store.getCount(); i++) {
	 var record = store.getAt(i);
	data.push(record.data);
}

 注意:一定要转换成后台能够接收到的结构:使用Ext.util.JSON.encode(data)或JSON.stringify(data)将json数组对象转换成字符串。此时后台接收是通过JSONArray来进行的:

JSONArray arr = JSONArray.fromObject(datas);
for(int i=0; i<arr.size(); i++) {
     JSONObject obj = arr.getJSONObject(i);
//获取各属性值用obj.get(key), 转换成int或double等数值用Integer.valueOf(obj.get(key).toStirng())或Double.valueOf(obj.get(key).toStirng())
}

 

 

至此,Ext的EditorGrid数据跟后台的动态绑定就记录完毕了。上一张效果图:



 

 

 

  • 大小: 6.9 KB
1
1
分享到:
评论

相关推荐

    MySQL,DWR,JSON,EXT 实现EditorGrid

    使用EXT的EditorGrid,实现前台页面对数据直接进行增删改查操作。用户的友好性较好,已经实现分页功能。例子中使用了DWR和JSON.含MySQL数据库脚本,并已加入Log4j日志记录。本例详细讲解可以参见:...

    ext增删查改demo

    在这个"ext增删查改demo"中,我们可以看到是EXTJS在数据管理方面的应用,涉及到的主要知识点包括EXTJS的基础组件、数据模型、数据存储以及数据绑定。 1. EXTJS版本:此示例提及了EXTJS 3.1和2.2两个版本。EXTJS 3.x...

    Ext组件描述,各个组件含义

    - **主要用途**:用于存储后台需要的额外数据。 **2.23 HTML Editor (Ext.form.HtmlEditor)** - **xtype**: `htmleditor` - **功能描述**:HTML Editor 是一个富文本编辑器。 - **主要用途**:适用于需要用户编辑...

    EXT2.0中文教程

    1.2. 看看ext-1.1.1的文档 1.3. 看看ext-2.0的文档 1.4. 为什么有的例子必须放在服务器上才能看到效果? 1.5. 为什么自己按照例子写的代码,显示出来总找不到图片 1.6. 我们还需要什么? 1.7. 入门之前,都看hello...

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

    Ext表格控件是一套功能丰富的网格组件,可以实现数据的展示、排序、编辑等功能。表格可以动态添加列,调整列宽,支持分页,甚至可以结合EditorGrid实现行的编辑和动态添加。Ext JS 2.0相较于1.x版本,表格控件的功能...

    Ext 4.1.0 中文API

    3. **数据绑定(Data Binding)**:Ext 4.1.0引入了强大的数据绑定机制,使得视图可以直接与数据源进行同步。这允许开发者通过更改模型数据,实时更新UI,反之亦然,实现双向数据绑定。 4. **Store(数据存储)**:...

    Ext 开发指南 学习资料

    1.2. 看看ext-2.0.2的文档 1.3. 为什么有的例子必须放在服务器上才能看到效果? 1.4. 为什么自己按照例子写的代码,显示出来总找不到图片 1.5. 我们还需要什么? 1.6. 入门之前,都看helloworld。 1.6.1. 直接使用...

    Ext中xtype和vtype.

    * editorgrid:一个编辑器网格组件,用于编辑数据。 * grid:一个网格组件,用于显示数据。 * paging:一个分页工具栏组件,用于分页显示数据。 * panel:一个面板组件,用于容纳其他组件。 * progress:一个进度条...

    ext的edittreegrid实现

    在EXT JS库中,"ext的edittreegrid实现"是一种功能强大的组件,它结合了树形视图(Tree)和编辑网格(EditorGrid)的功能,允许用户在具有层次结构的数据上进行直观的编辑操作。这个组件对于那些需要管理结构化且...

    AJAX 入门视频之 Ext 2.0.1 & DWR 1表格实时编辑器实例

    EditorGrid是Ext提供的一种可编辑的表格控件,它允许用户直接在表格单元格内编辑数据,提升了用户体验。在这个实例中,开发者利用EditorGrid实现了实时编辑功能,用户可以直接在表格中修改数据,而无需跳转到新的...

    精通JS脚本之ExtJS框架.part1.rar

    9.2.2 从后台脚本获得分页数据 9.2.3 在表格顶部显示分页工具条 9.2.4 实现前台分页效果 9.3 可编辑表格控件——EditorGrid 9.3.1 制作第一个EditorGrid 9.3.2 添加一行数据 9.3.3 保存修改结果 9.3.4 验证...

    深入浅出ExtJS第2版

    3.9.2 通过后台脚本获得分页数据 49 3.9.3 分页工具栏显示在Grid的顶部 51 3.9.4 让EXT支持前台排序 52 3.10 后台排序 53 3.11 可编辑表格控件--EditorGrid 55 3.11.1 制作一个简单的EditorGrid 55 3.11.2 ...

    ExtJs + api + 笔记 + 完整包

    它提供了丰富的用户界面组件,如数据绑定、网格、表单、菜单、树形结构等,使得开发人员能够创建功能丰富的交互式网页应用。本资源包含ExtJs的API文档、笔记以及示例,帮助开发者深入理解和使用ExtJs。 首先,API...

    精通JS脚本之ExtJS框架.part2.rar

    9.2.2 从后台脚本获得分页数据 9.2.3 在表格顶部显示分页工具条 9.2.4 实现前台分页效果 9.3 可编辑表格控件——EditorGrid 9.3.1 制作第一个EditorGrid 9.3.2 添加一行数据 9.3.3 保存修改结果 9.3.4 验证...

    Extjs 初体验

    通过实践和阅读官方文档,开发者可以深入学习如何创建自定义组件、使用数据绑定、实现事件处理以及优化性能等高级主题。此外,ExtJS社区也非常活跃,提供了许多示例、插件和教程,帮助开发者解决实际问题。 总之,...

    extjs xtype

    10. `editorgrid` - `Ext.grid.EditorGridPanel`:可编辑的表格,允许用户直接在表格中修改数据。 11. `grid` - `Ext.grid.GridPanel`:标准的表格组件,用于展示数据。 12. `paging` - `Ext.PagingToolbar`:分页...

    extjs培训2011-12-17

    ExtJS作为一款优秀的JavaScript框架,不仅提供了强大的UI组件,还支持多种布局管理方式、数据绑定机制以及事件处理等功能。通过深入学习其组件体系,开发者可以轻松构建出复杂而美观的Web应用界面。此外,了解如何...

    ExtJs组件类的对应表

    11. **`editorgrid`** - `Ext.grid.EditorGridPanel`,可编辑的表格组件,允许用户直接在表格中编辑数据。 12. **`propertygrid`** - `Ext.grid.PropertyGrid`,属性表格组件,用于展示对象的属性。 13. **`...

    ExtJs xtype一览

    - **`editorgrid` (Ext.grid.EditorGridPanel)**: 可编辑的表格组件,允许用户直接在表格内进行数据编辑。 - **`propertygrid` (Ext.grid.PropertyGrid)**: 属性表格组件,专门用于展示对象的属性。 - **`editor` ...

Global site tag (gtag.js) - Google Analytics