jqGrid ajax 互搞,json object 互搞
今天玩了玩jqGrid,贴点代码出来,以后方便copyjqGrid 编辑模式,如果想要编辑,切记cellEdit地方的设置,少了这个,表格死也不能编辑,害老夫郁闷了很久:
jQuery("#table").jqGrid({datatype: "json", width:1019,colNames:['编号','名称'], colModel:[ {name:'no',index:'no', width:15, editable:false}, {name:'name',index:'name', width:15, sortable:false,editable: true}], multiselect: false,cellEdit:true, cellsubmit:"clientArray",caption: "数据列表" ,onSelectRow: function(ids) {s=ids;}});
按钮提交上面这个表单的时候,注意使用POST,GET如果参数过长会被截掉。
取得JQGRID中所有数据的代码:
function getFormJosn(){var tmp=[];var Data="";$("#table>tbody>tr").each(function (){ tmp = "{'no':'"+$("#table").getRowData(this.id).no+"',"; tmp += "'name':'"+$("#table").getRowData(this.id).name+"'}"; }); for(var n =0;n<tmp.length;n++){Data+=tmp;Data+=",";}return {'Data':Data}; }
ajax 将上面的数据传入后台进行业务处理
//保存$("#doSave").click(function(){var Data="";Data= getFormJosn();$.ajax({ type: 'POST', url:"xxxx.action?doSave",data: Data, success:function(data){ alert("over"); }}); });
在补充个JSON互转的代码
public class JsonProvider {public static String writeToString(Object object){String result ="";try { ObjectMapper m = new ObjectMapper();result =m.writeValueAsString(object);} catch (JsonGenerationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (JsonMappingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return result ;}public static TypeData fromJSON(String json, TypeData clazz) {ObjectMapper mapper = new ObjectMapper();try {clazz=mapper.readValue(json, TypeData.class);} catch (JsonGenerationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (JsonMappingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return clazz;} public static void main(String[] args) { //resolveJson(); String json="{\"name\":\"张三\",\"年龄\":\"15\"}"; fromJSON(json,new TypeData());}}
页:
[1]