Ext.grid.EditorGridPanel保存
用get方法传递编辑的数据会出现乱码,解决get乱码的方法就是encodeURI(param),然后在后台转码:
String strJson = new String(request.getParameter("param").getBytes("iso-8859-1"),"utf-8");
java.net.URLDecoder.decode(strJson, "UTF-8");
下面是get方法传参代码:
1、获取Ext.grid.EditorGridPanel的bbar添加保存按钮
bbar:new Ext.PagingToolbar({
emptyMsg:"没有数据",
displayInfo:true,
displayMsg:"目前显示第 {0} - {1} 条,共 {2} 条",
store:store,
pageSize:20,
refreshText:"刷新列表",
items:['-', {
text:'保存',
handler:function(){
var m = store.modified.slice(-1);
var jsonArray = []; //定义修改后的JSON对象
Ext.each(m, function (item) {
jsonArray.push(item.data);
});
var strJson = Ext.encode(jsonArray);
if (jsonArray.length == 0) {
Ext.Msg.alert('提示', '没有对数据进行任何更改!');
return;
}else{
Ext.Msg.alert('提示', '保存!');
Ext.Ajax.request({
url: '/s.do/servlet?tg=s&json='+ encodeURI(strJson),
success: function (response) {
Ext.Msg.alert("提交成功", response.responseText); //必须返回json类型 context.Response.Write("{ success: true, errors:{} }");
},
failure: function (response) {
Ext.Msg.alert("提交失败", response.responseText); //必须返回json类型{ success: false, errors:{info: '错误了'} }
}
});
}
}
}]
})
get
2、后台解析json
String strJson = new String(request.getParameter("json").getBytes("iso-8859-1"),"utf-8");
java.net.URLDecoder.decode(strJson, "UTF-8");
System.out.println(strJson);
JSONArray js=JSONArray.fromObject(strJson);
JSONObject json = null;
Iterator it=js.iterator();
while(it.hasNext()){
json=(JSONObject)it.next();
String nbbm=json.getString("nbbm");
int flag = json.getInt("flag");
}
get/servlet
下面是post方式传参,推荐这种方法,无须转码:
bbar:new Ext.PagingToolbar({
emptyMsg:"没有数据",
displayInfo:true,
displayMsg:"目前显示第 {0} - {1} 条,共 {2} 条",
store:store,
pageSize:20,
refreshText:"刷新列表",
items:['-', {
text:'保存',
handler:function(){
var m = store.modified.slice(-1);
var jsonArray = []; //定义修改后的JSON对象
Ext.each(m, function (item) {//将修改后的行对象生成json对象
jsonArray.push(item.data);
});
var strJson = Ext.encode(jsonArray);
if (jsonArray.length == 0) {
Ext.Msg.alert('提示', '没有对数据进行任何更改!');
return;
}else{
Ext.Msg.alert('提示', '保存!');
Ext.Ajax.request({
url: '/servlet/AccountManagement?action=save',
success: function (response) {
Ext.Msg.alert("提交成功", response.responseText); //必须返回json类型 context.Response.Write("{ success: true, errors:{} }");
},
failure: function (response) {
Ext.Msg.alert("提交失败", response.responseText); //必须返回json类型{ success: false, errors:{info: '错误了'} }
},
params: { UpdateInfo: Ext.encode(jsonArray)}//参数使用 Ext.encode方法将JSON对象编码成字符串,传递到后台!!!!!!
});
}
}
}]
})
post
后台解析json:
String strJson = request.getParameter("UpdateInfo");
System.out.println(strJson);
JSONArray js=JSONArray.fromObject(strJson);
JSONObject json = null;
Iterator it=js.iterator();
while(it.hasNext()){
json=(JSONObject)it.next();
String nbbm=json.getString("nbbm");
int flag = json.getInt("flag");
}
post/servlet
Ext.grid.EditorGridPanel保存的更多相关文章
- 从服务器端获取列和数据动态创建Ext.grid.EditorGridPanel
1.添加列的方法 var addColumn = function(){ this.fields = ''; this.columns = ''; this.addColumns=function(n ...
- Ext.grid.EditorGridPanel点击单元格添加菜单栏
1.定义菜单栏需要的全局变量 var khbm; var type; 2.新建一个菜单栏 var smenu = new Ext.menu.Menu({ id:"sMenu", i ...
- Ext.grid.EditorGridPanel分页和查看全部
在gridPanel添加查看全部数据按钮,必须使得每页显示的数量pageSize为总条数,那么总页数就只会有一页. 1.获取store数据的总条数 var totalCount = grid.getS ...
- Ext.grid.EditorGridPanel分页刷新
store.reload(); var start = grid.getBottomToolbar().cursor;//获取当前页开始条数 上面获取当前页第一条记录的方法有时候说未定义,我现在使用下 ...
- Ext.grid.EditorGridPanel联动设置单元格是否可以编辑和背景色
listeners:{ "beforeedit":function(iEventobj){ var col = iEventobj.row;//获取行 var record = i ...
- Ext.grid.CheckboxSelectionModel复选框设置某行不可以选中
var sm = new Ext.grid.CheckboxSelectionModel({ renderer:function(v,c,r){ if(r.get("isEdit" ...
- 【extjs】 ext5 Ext.grid.Panel 分页,搜索
带有分页,搜索的grid. <%@page language="java" contentType="text/html; charset=UTF-8" ...
- [转]extjs grid的Ext.grid.CheckboxSelectionModel默认选中解决方法
原文地址:http://379548695.iteye.com/blog/1167234 grid的复选框定义如下: var sm = new Ext.grid.CheckboxSelection ...
- ExtJs 学习之开篇(三)Ext.grid.Panel表格中的处理
Ext.grid.Panel Ext.create('Ext.grid.Panel',{ title:'测试表格', width:400, height:20 ...
随机推荐
- vue数据驱动作用域问题
需求是这样的,如图 点击禁用后,变成启用,但是结果却不让人满意 我们先来看一下错误代码: //conponet控件里的内容 html内容: <div> <button @click. ...
- 将域名转移到 Google Domains
之前存放域名用过 Godaddy.Dynadot.Namesilo 也有阿里云(万网)和腾讯云(新网),这回就用 Google Domains 啦! 话说 Google Domains 早已是 201 ...
- 64位linux系统通过编译安装apache+…
二.安装php 上传php压缩包 例如:php-5.2.3.tar.gz 移动 mv php-5.2.3.tar.gz /usr/local/src 进入 cd /usr/local/src 解压 t ...
- 银河英雄传说[NOI2002]
题目描述 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发 ...
- C#字符串格式化(摘抄的,留下来用用)
1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0 ...
- Python Socket 简单聊天室1
这是第一版,最简单的,仅仅实现了通信,你收我发,我收你发而已.下篇将介绍,基于异步多线程的聊天室: 客户端: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
- HDU-2017-字符串统计
/* Name: HDU-2017-字符串统计 Date: 18/04/17 20:19 Description: 水过 */ #include<bits/stdc++.h> using ...
- TestNG的组测试和组中组测试
在编写测试的过程中,我们经常遇到只想执行个别或者某一部分/某一类型的测试用例,这时我们可以使用TestNG的分组测试方法 分组测试在配置时,TestNG执行的原则是:只保留最小集合进行执行 看代码: ...
- web添加第三方应用,前端解决跨域问题的8种方案
应用场景 web应用通过QQ登录授权实现第三方登录. 操作步骤 1. 注册成为QQ互联平台开发者,http://connect.qq.com/ 2. 准备一个可访问的域名,如dev.foo.com 3 ...
- Linux操作系统-命令-top
当我们在执行性能测试的时候,需要关注 业务性能指标(业务监控) 吞吐量(TPS) 响应时间 平均响应时间 50%用户响应时间 90%用户响应时间 标准差 # TPS标准差越小,说明波动越小,系统越稳定 ...