用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保存的更多相关文章

  1. 从服务器端获取列和数据动态创建Ext.grid.EditorGridPanel

    1.添加列的方法 var addColumn = function(){ this.fields = ''; this.columns = ''; this.addColumns=function(n ...

  2. Ext.grid.EditorGridPanel点击单元格添加菜单栏

    1.定义菜单栏需要的全局变量 var khbm; var type; 2.新建一个菜单栏 var smenu = new Ext.menu.Menu({ id:"sMenu", i ...

  3. Ext.grid.EditorGridPanel分页和查看全部

    在gridPanel添加查看全部数据按钮,必须使得每页显示的数量pageSize为总条数,那么总页数就只会有一页. 1.获取store数据的总条数 var totalCount = grid.getS ...

  4. Ext.grid.EditorGridPanel分页刷新

    store.reload(); var start = grid.getBottomToolbar().cursor;//获取当前页开始条数 上面获取当前页第一条记录的方法有时候说未定义,我现在使用下 ...

  5. Ext.grid.EditorGridPanel联动设置单元格是否可以编辑和背景色

    listeners:{ "beforeedit":function(iEventobj){ var col = iEventobj.row;//获取行 var record = i ...

  6. Ext.grid.CheckboxSelectionModel复选框设置某行不可以选中

    var sm = new Ext.grid.CheckboxSelectionModel({ renderer:function(v,c,r){ if(r.get("isEdit" ...

  7. 【extjs】 ext5 Ext.grid.Panel 分页,搜索

    带有分页,搜索的grid. <%@page language="java" contentType="text/html; charset=UTF-8" ...

  8. [转]extjs grid的Ext.grid.CheckboxSelectionModel默认选中解决方法

    原文地址:http://379548695.iteye.com/blog/1167234 grid的复选框定义如下:   var sm = new Ext.grid.CheckboxSelection ...

  9. ExtJs 学习之开篇(三)Ext.grid.Panel表格中的处理

    Ext.grid.Panel Ext.create('Ext.grid.Panel',{        title:'测试表格',        width:400,        height:20 ...

随机推荐

  1. Go语言学习笔记(五)文件操作

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 文件读取 os.File 封装了文件相关操作 type File File代表一个打开的文件对象. func Cr ...

  2. Spring源码情操陶冶-AbstractApplicationContext#initMessageSource

    承接前文Spring源码情操陶冶-AbstractApplicationContext#registerBeanPostProcessors 约定web.xml配置的contextClass为默认值X ...

  3. jdk配置java_home的两种方式

    在开发java项目的时候,要先安装jdk,安装完jdk之后我们要配置环境变量.今天说一下java home环境变量. 配置环境变量有两种方式,一种就是在计算机的环境变量里面配置.这个是很简单的.如果你 ...

  4. ETL作业调度软件TASKCTL4.1单机部署

    单机部署,实际上就是将EM节点和一个Server节点安装到同一个地方.EM节点是TASKCTL服务端的最顶层,主要负责客户端与服务端之间的通信.Server节点是TASKCTL的调度服务控制层,也有A ...

  5. 看望朋友(家达)--->>对事情的专注及时间效率学习

    本意是想去堕落街吃完饭就回寝室休息了,结果偶遇尹阳,便说是一同去走走.路上边走边聊,我便提议去十教楼顶,十教是全学校最高的教学楼,这也是刘智学长给我说的.在十教楼顶的那种感觉,特别想吹口琴,可惜没有带 ...

  6. 关于javascript在OJ系统上编程的注意事项

    ① 牛客网输入流: var line=readline().split(' '); ② 赛码网输入流: var line=read_line().split(' '); ③ 输出流: print(); ...

  7. Unity3D 中材质球(Material)预制体打包成AB(AssetBundle)出现材质丢失问题的解决方案

    关于Unity3D中打AB(AssetBundle)资源包,默认是不连Shader一同打包进去的,所以得自行添加,添加方式比较简单,不需要往项目中添加Shader,只是点选一下就可以了,具体实现方式如 ...

  8. Vue2源码分析-逻辑梳理

    很久之前就看完vue1,但是太懒就一直没写博客,这次打算抽下懒筋先把自己看过了记录下来,否则等全部看完,估计又没下文了 看源码总需要抱着一个目的,否则就很难坚持下去,我并没做过vue的项目,我几乎很少 ...

  9. storm从入门到放弃(三),放弃使用《StreamId》特性。

    序:StreamId是storm中实现DAG有向无环图的重要一个特性,但是从实际生产环境来看,这个功能其实蛮影响生产环境的稳定性的,我们系统在迭代时会带来整体服务的不可用. StreamId是stor ...

  10. docker安装方法(常见安装出错问题汇总)

    参考资料: 1. 开源中国  http://www.oschina.net/translate/nstalling-dockerio-on-centos-64-64-bit?cmp Docker 是一 ...