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 ...
随机推荐
- Opencv-2017-7-18
橘子薄皮只吃瓤,可以称之为过滤,意思是只要我们需要的东西,去除不需要的. 图像灰度级的分布及变化. 空间域(分布)和频域(变化). 低频(变化小),高频,水平/垂直,(高/低通滤波器). 低频-类似模 ...
- cookie原理
cookie原理 一般来说,Cookie通过HTTP Headers从服务器端返回到浏览器上.首先,服务器端在响应中利用Set-Cookie header来创建一个Cookie,然后,浏览器在它的请求 ...
- Verilog 任意(奇数/偶数)分频器
参加过一次笔试,让实现3分频,楼主当时是懵逼的,脑子里只知道同时利用上升沿和下降沿,本来写对了,慌张面试,脑子不管用了,(因为是手写,只能用脑子仿真)后来又给改错了,捂脸... 还是逻辑不清晰,现在自 ...
- 1059. C语言竞赛
C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛.既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 冠军将赢得一份"神秘大奖"(比如很巨大的一本学生研究论文集--). 排名为 ...
- jQuery制作淘宝商城商品列表多条件查询功能
一.介绍 这几天做网站的时候,突然用到这个功能,找了好久也没有找到.看到"希伟素材网"有这么一个JS,效果很不错,也正是我一直以来想要的结果.附图如下: 二:使用教程 1 ...
- crm踩坑记(二)
Linux tmux 如何查看 tmux如何进行滚动呢? prefix + [, prefix为tmux的前置动作,默认是ctrl + b. 使用方向键或者pageUp来进行翻页. q可以退出滚动模式 ...
- DataGuard开启延时应用的测试
DataGuard开启延时应用的测试 实验环境:RHEL 6.5 + Oracle 11.2.0.4 GI.DB + Primary RAC(2 nodes)+ Standby RAC(2 nodes ...
- Thinkpad T450 Linux Mint(Ubuntu) 安装Nvidia显卡驱动
事件背景 前段时间从Ubuntu切换到了LinuxMint,想尝尝鲜. LinuxMint是基于Ubuntu改良的,放弃了Ubuntu的Unity界面,更加易用,更加适合我这样的小白人员.本文也适用于 ...
- C#之隐式与显示类型转换
今天在看一篇有关数据类型的文章的时候,无意间看到了两个关键词,"隐式转换"与"显示转换",然后突然想起了当初开始学编程的时候,也总是在代码编译的时候遇到这样的问 ...
- python学习===从一个数中分解出每个数字
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1 ...