环境:jquery + jqGrid
页面代码:
<p> <table id="UserTypeList"></table> <div id="UserTypePager"></div> <script type="text/javascript"> $(function(){ $.post( 'listUserType.action', {}, function (json){ jQuery("#UserTypeList").jqGrid({ data: json.userTypeList, datatype: "local", height: "auto", rowNum: 10, rowList: [10,50,100], colNames:['id', '名称', '权值'], colModel:[ {name:'id',index:'id', hidden:true}, {name:'type_name',index:'type_name', width:150,formoptions:{elmprefix:"(*)"},editable:true,editrules:{required:true}}, {name:'type_power',index:'type_power', width:150,formoptions:{elmprefix:"(*)"},editable:true,editrules:{required:true}}, ], caption: '用户类型', pager: "#UserTypePager", viewrecords: true, sortname: 'type_name', sortorder: "asc", rownumbers: true, gridview : false, grouping: false, editurl:"editUserTypeInfo.action" }); jQuery("#UserTypeList").jqGrid('navGrid','#UserTypePager', {view:true}, //options {jqModal:true,checkOnUpdate:false,savekey: [true,13], navkeys: [true,38,40], checkOnSubmit : false, reloadAfterSubmit:false, closeOnEscape:true, bottominfo:"带有 (*) 的是必填项"}, // edit options {jqModal:true,checkOnUpdate:false,savekey: [true,13], navkeys: [true,38,40], checkOnSubmit : false, reloadAfterSubmit:false, closeOnEscape:true,bottominfo:"带有 (*) 的是必填项"}, // add options {reloadAfterSubmit:false,jqModal:false, closeOnEscape:true}, // del options {closeOnEscape:false}, // search options {navkeys: [true,38,40], height:250,jqModal:false,closeOnEscape:true} // view options ); } ); }); </script> </p>
server代码:
public String editUserTypeInfo() throws SQLException{ ..... return "jsonres"; } private String type_name; private int type_power; private int id; private String oper; [getter/setter省略]
返回的错误就是 HTTP Status 404 - No result defined for ...
定位过程就不说了,直接说结论。
问题就出在server部分的变量类型,将 type_power 与 id 的变量类型修改为 String 就ok了。
问题应该是jgGrid的变量类型处理方面的问题。