jqGrid 返回正确的json数据却无法正常显示

各位好:目前使用jqGrid插件做数据展示,遇到问题
json返回的数据格式是正确的,但是前台界面却显示,服务器端我使用的struts2,为了方便调试,目前json串的拼接先直接接到txt文件中,action直接读取文件内容返回。方便修改测试,等这个问题解决后,改为
动态拼写,上代码:
返回的json:

{
    "page": "1",
    "total": 2,
    "records": "13",
    "rows": [
        {
            "id": "13",
            "cell": [
                "13",
                "2007-10-06",
                "1000.00",
                "0.00",
                "1000.00"
            ]
        }
    ]
}

jsp文件:

 <%@ page language="java" pageEncoding="UTF-8"
    contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html>
<html>
<head>
<style>
</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href="<%=basePath%>">
<title>管理员用户信息查询</title>
<link rel="stylesheet" type="text/css" href="css/admin/jquery-ui.theme.css" />
<link rel="stylesheet" type="text/css" href="css/admin/ui.jqgrid.css" />
<style>
html, body {
    margin: 0;
    padding: 0;
    font-size: 75%;
}
</style>
<script src="js/jquery-2.2.3.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
<script src="js/admin/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/admin/grid.locale-en.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(
    function() {
        jQuery("#list4").jqGrid({
        url: 'menuMgr/adminUserMgr!query.action'
        datatype: "JSON",
        width: 1200,
        height: 600,
            colNames:['用户名','邮箱', '权限级别', '标志位','入库时间'],
            colModel:[
                {name:'userName',index:'userName', width:60, sorttype:"int"},
                {name:'email',index:'email', width:90, sorttype:"date"},
                {name:'perm_level',index:'perm_level', width:80, align:"right",sorttype:"float"},
                {name:'flag',index:'flag', width:80, align:"right",sorttype:"float"},
                {name:'intime',index:'intime', width:80,align:"right",sorttype:"float"}
            ],
            rowNum : 10,
            pager : '#pager2',
            multiselect: true,
            caption: ""
          });

        jQuery("#list4").jqGrid('navGrid', '#pager2', {edit : false,add : false,del : false});

        /* var mydata = [
        {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"4",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"7",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}
        ];

        for(var i=0;i<=mydata.length;i++)
        jQuery("#list4").jqGrid('addRowData',i+1,mydata[i]); */
        });

        </script>
        </head>
        <body>
            <br><span style="font-weight:bold;">
            管理菜单 >> 管理员用户管理  >> 管理员用户信息查询
            </span>
            <br>
            <br>
        <table id="list4"></table>
        <div id="pager2"></div>
        </body>
        </html>

静态数据是没问题的(local),动态的就是死活不展示

界面现状:
图片说明

不过没C币了,希望大家帮帮我 谢谢大家!

1个回答

colNames和colModel长度一致,报错了

jqGrid选项配置

NMyEclipse
NMyEclipse 时间压力比较大,能否烦请帮解决下
3 年多之前 回复
NMyEclipse
NMyEclipse 恩,我服务器端是struts2 配置文件中type是json 并且我也研究了gqGrid对返回数据的格式要求,目前返回的样式就是按照要求来的,可能在jqGrid里面Reader配置的不同,返回的json格式有些许变化,我觉得目前的返回格式是符合规范要求的
3 年多之前 回复
showbo
支付宝加好友偷能量挖 回复NMyEclipse: 你指定datatype为json不需要,jqgrid会自动帮你转为json对象,你自己先搞清楚服务器返回的数据是什么先
3 年多之前 回复
NMyEclipse
NMyEclipse 回复NMyEclipse: jqgrid 没把他当成json对象来处理,需要 json = eval(json),
3 年多之前 回复
NMyEclipse
NMyEclipse 回复NMyEclipse: 不可以,我之前在iteye上看到有个哥们遇到一样的问题,大概意思是返回的是json数据,但是
3 年多之前 回复
NMyEclipse
NMyEclipse 回复无聊码农: 但我从网络里面的resp里 能看到响应回来的json数据,我先改过来试试
3 年多之前 回复
showbo
支付宝加好友偷能量挖 回复NMyEclipse: url: 'menuMgr/adminUserMgr!query.action' 这后面少逗号了,firebug要开着的时候才会报错,执行完毕了再打开看不到错误
3 年多之前 回复
NMyEclipse
NMyEclipse 回复无聊码农: 改成一样了,还是不行,通过firebug查看 没看到有报错,就是不显示数据
3 年多之前 回复
showbo
支付宝加好友偷能量挖 不一致
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jqgrid用Java返回了json数据,却总是显示不出来
这两天研究jqgrid,我用的jsp,用local方式能正常显示出来,但换成json形式就不行了 [code="java"] <%@ page pageEncoding="UTF-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jqGrid Demos</title> <link rel="stylesheet" type="text/css" media="screen" href="<%=application.getContextPath()%>/resources/jqcss/jquery-ui-1.8.12.custom.css" /> <link rel="stylesheet" type="text/css" media="screen" href="<%=application.getContextPath()%>/resources/jqcss/ui.jqgrid.css" /> <link rel="stylesheet" type="text/css" media="screen" href="<%=application.getContextPath()%>/resources/jqcss/ui.multiselect.css" /> <script src="<%=application.getContextPath()%>/resources/js/jquery-1.4.2.min.js" type="text/javascript" ></script> <script src="<%=application.getContextPath()%>/resources/jqgrid/grid.locale-cn.js" type="text/javascript"></script> <script type="text/javascript"> $.jgrid.no_legacy_api = true; $.jgrid.useJSON = true; </script> <script src="<%=application.getContextPath()%>/resources/jqgrid/jquery.jqGrid.min.js" type="text/javascript"></script> <script src="<%=application.getContextPath()%>/resources/jqgrid/jquery-ui-1.8.12.custom.min.js" type="text/javascript"></script> <script type="text/javascript"> jQuery(document).ready(function(){ jQuery("#list4").jqGrid({ datatype: "local", height: 250, colNames:['序号','日期', '姓名', '数量A','数量B','总和','备注'], colModel:[ {name:'id',index:'id', width:30, sorttype:"int"}, {name:'invdate',index:'invdate', width:90, sorttype:"date"}, {name:'name',index:'name', width:100}, {name:'amount',index:'amount', width:80, align:"right",sorttype:"float"}, {name:'tax',index:'tax', width:80, align:"right",sorttype:"float"}, {name:'total',index:'total', width:80,align:"right",sorttype:"float"}, {name:'note',index:'note', width:150, sortable:false} ], rowNum:4, rowList:[4,8,12], pager: '#pager2', multiselect: true, caption: "Manipulating Array Data" }); var mydata = [ {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, {id:"4",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, {id:"7",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"} ]; for(var i=0;i<=mydata.length;i++){ jQuery("#list4").jqGrid('addRowData',i+1,mydata[i]); } }); </script> </head> <body> <table id="list4"></table> <div id="pager2"></div> </body>[/code] 把mydate改成从后台获取也可以 [code="java"]var mydata = ${list};[/code] list [code="java"] public void onLoad(Map request, Map session) { StringBuilder sb = new StringBuilder(); sb.append("[{id:").append('"').append("1").append('"') .append(",invdate:").append('"').append("2007-10-01").append('"') .append(",name:").append('"').append("test").append('"') .append(",note:").append('"').append("note").append('"') .append(",amount:").append('"').append("200.00").append('"') .append(",tax:").append('"').append("10.00").append('"') .append(",total:").append('"').append("210.00").append('"') .append("}]") ; request.put("list", sb.toString()); } [/code] 但是把datatype换成json就不行,返回的json格式数据我试了各种版本,但就是不行。 不知有人碰到过类似问题没有
jqgrid的subgrid无法显示的问题?
最开始用subGridRowExpanded的方式在方法里添加html和subgrid,后来想用subGridModel的方式直接显示subgrid,结果数据无法显示。jqgrid的demo里都是那么写的但是不知道为什么我用了不行,看url返回的数据也是正常的json
后台返回json给jqgrid
Q:前端jqgrid样式能出来,JS/CSS都加载好了,F12没有报错 可是就是没有把数据装到JQGRID里面,想问问是不是我JSON拼得不对 以下是前端发出请求的地方 ![图片说明](https://img-ask.csdn.net/upload/201701/27/1485446579_64439.png) 以下是后台处理并返回json ![图片说明](https://img-ask.csdn.net/upload/201701/27/1485446587_664407.png) 以下是return json断点时获取的值 上半对应后台没有注释的部分 下半对应后台被注释的部分 ![图片说明](https://img-ask.csdn.net/upload/201701/27/1485446598_195302.png)
jqGrid获取到python返回的Json数据,未能显示到页面上,为毛???
<p>jqGrid获取到python返回的Json数据,未能显示到页面上,为毛???</p> <p> </p> <div class="quote_title"> 写道</div> <div class="quote_div">[{"invdate": "2007-10-01", "id": "1", "name": "test"}, {"invdate": "2007-09-01", "id": "9", "name": "test3"<br>}]</div> <p> <span style="white-space: pre; background-color: #fafafa;">jQuery(document).ready(function(){</span></p> <pre name="code" class="js"> jQuery("#toolbar").jqGrid({ url:'/getJgGridDatas/', datatype: "json", height: 255, width: 980, colNames:['id','invdate', 'name'], colModel:[ {name:'id',index:'id', width:65, sorttype:'int'}, {name:'invdate',index:'invdate', width:50}, {name:'name',index:'name', width:100} ], rowNum:50, rowTotal: 2000, rowList : [20,30,50], loadonce:true, mtype: "GET", rownumbers: true, rownumWidth: 40, gridview: true, pager: '#ptoolbar', sortname: 'item_id', viewrecords: true, sortorder: "asc", caption: "我的查询" }); jQuery("#toolbar").jqGrid('navGrid','#ptoolbar',{del:false,add:false,edit:false,search:true}); jQuery("#toolbar").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false}); })</pre>   <p> </p>
jqgrid获取不到后台数据,大神帮忙看一下
下面是 页面部分: ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=urf-8"> <title>调度任务列表</title> <style type="text/css">@import url('${pageContext.request.contextPath}/styles/home.css'); .selected{ background:#F0F0F0;} @import url('${pageContext.request.contextPath}/css/jquery-ui-1.8.4.custom.css'); @import url('${pageContext.request.contextPath}/css/ui.jqgrid.css'); </style> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-migrate-1.2.1.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/grid.locale-zh_CN.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.jqGrid.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/grid.custom.js"></script> <%-- <script type="text/javascript" src="${pageContext.request.contextPath}/js/common/triggerList.js"></script> --%> <script type="text/javascript"> $(function() { $("#tableList").jqGrid({ url : "${pageContext.request.contextPath}/JobProcessServlet?jobtype=100&action=query", // 提交的action地址 rownumbers : true, // 是否显示前面的行号 datatype : "json", // 返回的数据类型 mtype : "post", // 提交方式 height : "auto", // 表格宽度 autowidth : true, // 是否自动调整宽度 colNames:['Trigger 名称','Trigger 分组','下次执行时间','上次执行时间','优先级','Trigger 状态','Trigger 类型','开始时间','结束时间','操作'], colModel : [ { name : "display_name", index : "display_name", width : 60, sortable : true, align : 'center' }, { name : "trigger_group", index : "trigger_group", width : 60, sortable : true, align : 'center' }, { name : "next_fire_time", index : "next_fire_time", width : 60, sortable : true, align : 'center' }, { name : "prev_fire_time", index : "prev_fire_time", width : 60, sortable : true, align : 'center', }, { name : "priority", index : "priority", width : 60, sortable : true, align : 'center' }, { name : "statu", index : "statu", width : 60, sortable : true, align : 'center' }, { name : "trigger_type", index : "trigger_type", width : 60, sortable : true, align : 'center' }, { name : "start_time", index : "start_time", width : 60, sortable : true, align : 'center' }, { name : "end_time", index : "end_time", width : 60, sortable : true, hidden : true, align : 'center' } , { name : "process", index : "process", sortable : true, hidden : true, align : 'center' }], gridComplete : function() { $("#_empty", "#tableList") .addClass("nodrag nodrop"); $("#tableList").tableDnDUpdate(); var ids = jQuery("#tableList").jqGrid('getDataIDs'); for ( var i = 0; i < ids.length; i++) { var cl = ids[i]; update = "<input type='button' id='update' value='修改作业表达式' onclick='update(" + cl + ")'/>&nbsp;"; runOnce = "<input type='button' id='runOnce' value='立即执行一次' onclick='runOnce(" + cl + ")'/>&nbsp;"; pause = "<input type='button' id='runOnce' value='暂停' onclick='doCmd(" + cl + ")'/>&nbsp;"; recolve = "<input type='button' id='runOnce' value='恢复' onclick='doCmd(" + cl + ")'/>&nbsp;"; del = "<input type='button' id='runOnce' value='删除' onclick='doCmd(" + cl + ")'/>&nbsp;"; jQuery("#tableList").jqGrid('setRowData', ids[i], { process : update + runOnce + pause + recolve + del }); } }, viewrecords : true, sortname : "display_name", rowNum : 20, rowList : [10, 15, 20], prmNames : { search : "search" }, jsonReader : { root : "dataList", // 服务端保存数据的集合 repeatitems : false, page: "page", total: "total", records: "records", cell: "dataList", }, pager : "gridPager", hidegrid : false }); }); </script> </head> <body> <br><br> <table align="center" width="1100" border="0"> <tr> <td align="left"><a href="${pageContext.request.contextPath}/addTrigger.jsp">添加调度任务</a></td> </tr> <tr> <td align="left"><a href="${pageContext.request.contextPath}/logdb">查看作业日志表</a></td> </tr> <tr> <td align="left"><a href="${pageContext.request.contextPath}/compleData.htm">补数</a></td> </tr> </table> <div align="center" style="margin-bottom:5px"> <input type="button" id="update" style="margin-right:10px;" value="修改作业表达式" onclick="update()"> <input type="button" id="runOnce" style="margin-right:10px;" value="立即执行一次" onclick="runOnce()"> <input type="button" id="pause" style="margin-right:10px;" value="暂停" onclick="doCmd('pause')"> <input type="button" id="resume" style="margin-right:10px;" value="恢复" onclick="doCmd('resume')"> <input type="button" id="remove" style="margin-right:10px;" value="删除" onclick="doCmd('remove')"> </div> <table id="tableList"></table> <div id ="gridPager"></div> <%-- <table id="tableList" align="center" width="1100" border="1"> <tr> <th nowrap> 选择 </th> <th nowrap> Trigger 名称 </th> <th nowrap> Trigger 分组 </th> <th nowrap> 下次执行时间 </th> <th nowrap> 上次执行时间 </th> <th nowrap> 优先级 </th> <th nowrap> Trigger 状态 </th> <th nowrap> Trigger 类型 </th> <th nowrap> 开始时间 </th> <th nowrap> 结束时间 </th> <!-- <th nowrap> 动作命令 </th> --> </tr> <c:forEach var="map" items="${list}"> <tr align="center"> <td nowrap> <input type="checkbox" value="${map.trigger_name}"> </td> <td nowrap> ${map.display_name} </td> <td nowrap> ${map.trigger_group} </td> <td nowrap> ${map.next_fire_time} </td> <td nowrap> ${map.prev_fire_time} </td> <td nowrap> ${map.priority} </td> <td nowrap> ${map.statu} </td> <td nowrap> ${map.trigger_type} </td> <td nowrap> ${map.start_time} </td> <td nowrap> ${map.end_time} </td> <td nowrap> <input type="button" id="update" value="修改作业表达式" onclick="update('${map.trigger_name}','${map.job_name}')"> <input type="button" id="runOnce" value="立即执行一次" onclick="runOnce('${map.job_name}')"> <input type="button" id="pause" value="暂停" onclick="doCmd('pause','${map.trigger_name}','${map.trigger_group}','${map.trigger_state}')"> <input type="button" id="resume" value="恢复" onclick="doCmd('resume','${map.trigger_name}','${map.trigger_group}','${map.trigger_state}')"> <input type="button" id="remove" value="删除" onclick="doCmd('remove','${map.trigger_name}','${map.trigger_group}','${map.trigger_state}')"> </td> </tr> </c:forEach> </table> --%> </body> </html> 下面是java部分: private void getQrtzTriggers(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); List<Map<String, Object>> results = this.schedulerService .getQrtzTriggers(); String page = request.getParameter("page"); // 取得当前页数,注意这是jqgrid自身的参数 int rows = 20; int qrtzTriggers = this.schedulerService.countQrtzTriggers(); JSONObject json = new JSONObject(); json.put("dataList", results); json.put("records", qrtzTriggers);//总记录数 json.put("page", page); // 当前页 int total = qrtzTriggers/rows + ((qrtzTriggers%rows)>0?1:0); //计算得出的总页数 json.put("total", total); // 总页数 //System.out.println(rows); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); out.write(json.toString()); System.out.println(json.toString()); /*request.setAttribute("list", results);*/ request.getRequestDispatcher("/list.jsp").forward(request, response); } ```
tornado怎么往前台返回一个值(json或者字符串)
前台代码 $.ajax({ type: "GET", url: "serverDelete", success: function(data){ alert("success"); alert(data); } }); torando后台往前台传送数据都是这种形式 self.render('serverAdd.html',name="yy") 怎么直接往前台的ajax传送所需的数据? 有tornado+jqgrid用过的前辈么?其实我的问题是jqgrid往后台传送数据,然后直接处理传送过来的json数据,怎么能直接返回数据给jqgrid呢? 新手求教,莫喷,莫喷....
为什么我后台返回的数据 前台无法显示
我用jqgrid 方法 要把后台返回的json格式的list以表格的形式展示 ,后台请求成功 也把数据返回来了,为什么前台只显示表格 而无数据![图片说明](https://img-ask.csdn.net/upload/201608/16/1471332487_719557.jpg) ![图片说明](https://img-ask.csdn.net/upload/201608/16/1471332499_7819.jpg) ![图片说明](https://img-ask.csdn.net/upload/201608/16/1471332510_800025.jpg) ![图片说明](https://img-ask.csdn.net/upload/201608/16/1471332520_817468.jpg)
jqgrid struts2整合,jqgrid显示不出数据
[code="java"] $(function() { $("#commonForm").validationEngine(); $("#searchCondition").validationEngine({promptPosition: "centerRight"}); var entry=0; // 物品列表grid var itemGrid=jQuery("#items").jqGrid( { //url : 'findItems', datatype : "json", colNames : [ 'ID', '物品名称', '物品类型', '物品等级', '说明', '显示模型', '掉落时显示模型', '要求等级', '耐力', '智力', '力量', '敏捷', '攻击力', '法术攻击力', '护甲', '魔防', '叠加数量', '物品最大数量', '需求技能', '需求技能等级', '可装备位置', '套装ID', '最大耐久', '是否可购买', '价格', '附加技能', '闪躲', '招架', '格挡', '暴击', '命中', '魔法恢复', '物品品质'], colModel : [ {name:'entry',index:'entry',width:100,sortable:false,hidden:true}, {name:'itemName',index:'itemName',width:120,sortable:false}, {name:'itemClzz',index:'itemClzz',width:100,sortable:false}, {name:'itemLevel',index:'itemLevel',width:70,sortable:false}, {name:'description',index:'description',width:300,sortable:false}, {name:'displayed',index:'displayed',width:'100',sortable:false,hidden:true},//显示模型名称 {name:'displayed2',index:'displayed2',width:'100',sortable:false,hidden:true},//掉落时显示模型名称 {name:'requiredLevel',index:'requiredLevel',width:'70',sortable:false,hidden:false},//要求等级 {name:'stamina',index:'stamina',width:'40',sortable:false,hidden:true},//耐力 {name:'intelligence',index:'intelligence',width:'40',sortable:false,hidden:true},//智力 {name:'strength',index:'strength',width:'40',sortable:false,hidden:true},//力量 {name:'agility',index:'agility',width:'40',sortable:false,hidden:true},//敏捷 {name:'attPower',index:'attPower',width:'40',sortable:false,hidden:true},//攻击力 {name:'spellPower',index:'spellPower',width:'40',sortable:false,hidden:true},//法术攻击力 {name:'armorClass',index:'armorClass',width:'40',sortable:false,hidden:true},//护甲 {name:'defmagic',index:'defmagic',width:'40',sortable:false,hidden:true},//魔防 {name:'stackAble',index:'stackAble',width:'40',sortable:false,hidden:true},//叠加数量 {name:'maxCount',index:'maxCount',width:'80',sortable:false,hidden:true},//物品最大数量 {name:'requiredSkill',index:'requiredSkill',width:'70',sortable:false,hidden:true},//需求技能 {name:'requiredSkillRank',index:'requiredSkillRank',width:'80',sortable:false,hidden:true},//需求技能等级 {name:'inventoryType',index:'inventoryType',width:'70',sortable:false,hidden:true},//可装备位置 {name:'itemset',index:'itemset',width:'60',sortable:false,hidden:true},//套装ID {name:'maxDurability',index:'maxDurability',width:'70',sortable:false,hidden:true},//最大耐久 {name:'canBuy',index:'canBuy',width:'70',sortable:false,hidden:true},//是否可购买 {name:'price',index:'price',width:'40',sortable:false,hidden:true},//价格 {name:'bonusSkill',index:'bonusSkill',width:'70',sortable:false,hidden:true},//附加技能 {name:'dodge',index:'dodge',width:'40',sortable:false,hidden:true},//闪躲 {name:'parry',index:'parry',width:'40',sortable:false,hidden:true},//招架 {name:'block',index:'block',width:'40',sortable:false,hidden:true},//格挡 {name:'crit',index:'crit',width:'40',sortable:false,hidden:true},//暴击 {name:'haste',index:'haste',width:'40',sortable:false,hidden:true},//命中 {name:'magicrestore',index:'magicrestore',width:'70',sortable:false,hidden:true},//魔法恢复 {name:'quality',index:'quality',width:'70',sortable:false,hidden:true}//物品品质 ], multiselect : true, rowNum : 15, // 一个数组用来调整表格显示的记录数,此参数值会替代rowNum参数值传给服务器端。如果为空则不显示,设置格式:[10,20,30] rowList : [ 10, 15, 500, 1000 ], pager : '#pager', sortname : 'entry', viewrecords : true, sortorder : "desc", height : 348, width : 800, caption : "物品列表", // jsonReader的属性 jsonReader : { // 这个元素指明表格所需要的数据从哪里开始 root : "items", page : "page.curPage", // 当前页 total : "page.totalPages", // 总页数 records : "page.totalRecords", // 总记录数 rows : "page.pageSize",// 每页显示的行数 sort : "page.orderBy",// 排序字段 order : "page.order",// 排序方式 // 指明每行的数据是可以重复的,如果设为false,则会从返回的数据中按名字来搜索元素,这个名字就是colModel中的名字 repeatitems : false }, prmNames : { rows : "page.pageSize", page : "page.curPage", total : "page.totalPages", records : "page.totalRecords", sort : "page.orderBy", order : "page.order" } }); itemGrid.jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:false,refresh:false}); itemGrid.jqGrid('navButtonAdd','#pager',{ caption: "列选择", onClickButton : function (){ itemGrid.jqGrid('columnChooser'); } }); /** * ----------------------------------初始化各Select------------------ */ createClzz("clzz","subClzz"); createClzz("item_clzz","item_subClzz"); createQuality("item_quality"); createQuality("quality"); /** * ---------------------------------弹出框属性设定------------------- */ //查看的弹出框设置 $("#viewItemDiv").dialog({modal:true, width:480, height:550, minHeight:550, minWidth:480,close:function(){ $("#commonForm").resetForm(); $("#viewItemDiv :text,:radio,#viewItemDiv textarea,#viewItemDiv select").removeAttr("disabled"); $(".formError").remove(); entry=0;; }}).dialog("close"); //导入的弹出框设置 $("#batchAddDiv").dialog({ modal:true, width:480, height:180, minHeight:180, minWidth:480, maxHeight:180, maxWidth:480 }).dialog("close"); /** * ---------------------------按钮相关处理--------绑定各按钮事件---------------- */ //查询按钮 $("#searchButton").click(function() { var param = $("#searchCondition").formSerialize(); var name = $("#searchCondition input:first"); if (name.val() == "") { param = param.replace("item.itemLevel=", "item.itemLevel=-1"); } itemGrid.setGridParam({ page : 1, url : "findItems.action?" + encodeURI(param) }).trigger("reloadGrid"); }); //省略若干 }) [/code] [code="java"] @Action(results = { @Result(type = "json") }, value = "findItems") public String findItems() throws Exception { // jqGrid查询转码-utf-8 Tools.decodeObject(this.item); this.page.init(this.itemService.findTotalRows(item)); System.out.println("shunxu: " + page.getOrderBy() + page.getOrder()); System.out.println("mingzi" + item.getName()); System.out.println("dengji: " + item.getItemLevel()); System.out.println("wupinleixing" + item.getClzz()); System.out.println("wupinzileixing" + item.getSubClzz()); System.out.println("pinzhi" + item.getQuality()); System.out.println("total:" + page.getTotalRecords()); if (this.page.getTotalRecords() != 0) { items = this.itemService.findItemsByCondition(item, this.page.getCurPage(), this.page.getPageSize(), this.page.getOrderBy(), this.page.getOrder()); } return "success"; } [/code] 断点在ACTION中items是得到了值的,但是jqgrid没有数据显示出来。
Spring MVC + Spring + Mybatis + JqGrid 前台数据显示不出来
json ``` @Controller @RequestMapping("/crud") public class UserController { @Resource(name="userServiceImpl") private UserService userService; @RequestMapping(method = RequestMethod.GET) public @ResponseBody CustomUserResponse findAllUser(){ List<UserVO> users = userService.getAllUsers(); CustomUserResponse response = new CustomUserResponse(); response.setRows(users); response.setRecords( String.valueOf(users.size()) ); response.setPage( "1" ); response.setTotal( "10" ); return response;//返回给jqGrid } } ``` jsp ``` <script type ="text/javascript"> $(function () { $("#list").jqGrid({ url: "/GridApp/crud",//获取数据的地址 datatype: "json",//从服务器端返回的数据类型,默认xml mtype: "GET",//ajax提交方式。POST或者GET,默认GET colNames: ["编号", "姓名", "性别", "年龄", "备注"],//列显示名称,是一个数组对象 /* 常用到的属性:name 列显示的名称;index 传到服务器端用来排序用的列名称; width 列宽度;align 对齐方式;sortable 是否可以排序 */ colModel: [ { name: "id", width: 55 }, { name: "name", width: 90 }, { name: "sex", width: 80, align: "right" }, { name: "age", width: 80, align: "right" }, { name: "remark", width: 80, align: "right" } ], pager: "#pager", //定义翻页用的导航栏,必须是有效的html元素。翻页工具栏可以放置在html页面任意位置 rowNum: 10, //在grid上显示记录条数,这个参数是要被传递到后台 rowList: [10, 20, 30],//一个下拉选择框,用来改变显示记录数,当选择时会覆盖rowNum参数传递到后台 sortname: "invid",//默认的排序列。可以是列名称或者是一个数字,这个参数会被提交到后台 sortorder: "desc",//排序顺序,升序或者降序(asc or desc) viewrecords: true,//定义是否要显示总记录数 emptyrecords: "Empty records",//当返回的数据行数为0时显示的信息。只有当属性 viewrecords 设置为ture时起作用 gridview: true,//构造一行数据后添加到grid中,如果设为true则是将整个表格的数据都构造完成后再添加到grid中,但treeGrid, subGrid, or afterInsertRow 不能用 autoencode: true,//对url进行编码 caption: "My first grid",//表格名称 jsonReader : { root: "rows", page: "page", total: "total", records: "records", repeatitems: false, cell: "cell", id: "id" } }); }); </script> <body> <table id = "list" ><tr><td></td></tr></table> <div id = "pager"></div> </body> ``` 异常 严重: Servlet.service() for servlet [springmvc] in context with path [/GridApp] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class com.java.json.CustomUserResponse] with root cause java.lang.IllegalArgumentException: No converter found for return value of type: class com.java.json.CustomUserResponse at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:178) at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:153) at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:165) at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:80) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:126) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
使用jqgrid没有数据,前台样式也有问题,url报405(Method Not Allowed)
![这个是前台展示的图片,什么样式都没有,只有表头,而且该引入的两个css文件已经引入了](https://img-ask.csdn.net/upload/201511/04/1446601040_840065.png) 下面是servlet public void ajaxTriggerList(HttpServletRequest request, HttpServletResponse response) throws Exception{ List<Map<String, Object>> results = this.schedulerService .getQrtzTriggers(); String page = request.getParameter("page"); // 取得当前页数,注意这是jqgrid自身的参数 if(page==null){ page= "1"; } int rows = 20; int qrtzTriggers = this.schedulerService.countQrtzTriggers(); JSONObject json = new JSONObject(); json.put("rows", results); json.put("records", qrtzTriggers);//总记录数 json.put("page", page); // 当前页 int total = qrtzTriggers/rows + ((qrtzTriggers%rows)>0?1:0); //计算得出的总页数 json.put("total", total); // 总页数 response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); out.print(json); System.out.println(json); ``` 这个是前台 $(function() { $("#tableList").jqGrid({ url : "${pageContext.request.contextPath}/listTrigger", // 提交的action地址 rownumbers : true, // 是否显示前面的行号 datatype : "json", // 返回的数据类型 height : "auto", // 表格宽度 mtype: "GET", autowidth : true, // 是否自动调整宽度 colNames:['Trigger 名称','Trigger 分组','下次执行时间','上次执行时间','优先级','Trigger 状态','Trigger 类型','开始时间','结束时间'], colModel : [ { name : "display_name", index : "display_name", width : 60, sortable : true, align : 'center' }, { name : 'trigger_group', index : 'trigger_group', width : 60, sortable : true, align : 'center' }, { name : 'next_fire_time', index : 'next_fire_time', width : 60, sortable : true, align : 'center' }, { name : 'prev_fire_time', index : 'prev_fire_time', width : 60, sortable : true, align : 'center', }, { name : 'priority', index : 'priority', width : 60, sortable : true, align : 'center' }, { name : 'statu', index : 'statu', width : 60, sortable : true, align : 'center' }, { name : 'trigger_type', index : 'trigger_type', width : 60, sortable : true, align : 'center' }, { name : 'start_time', index : 'start_time', width : 60, sortable : true, align : 'center' }, { name : 'end_time', index : 'end_time', width : 60, sortable : true, align : 'center' }], viewrecords : true, sortname : "display_name", rowNum : 20, rowList : [10, 15, 20], jsonReader : { root : "rows", // 服务端保存数据的集合 repeatitems : false, page: "page", total: "total", records: "records" }, pager : "#gridPager", hidegrid : false }); }); ``` 大神帮忙看看什么问题
jqgrid点击查询按钮,怎么触发点击事件,怎么把查询条件带进去
页面 ``` function selectJobLog(){ var txDate=$("#txDate").val(); var jobName=$("#jobName").val(); $("#tableList").jqGrid({ url:"${pageContext.request.contextPath}/listLogDb", postData:{"txDate":txDate,"jobNameStr":jobName}, rownumbers : true, // 是否显示前面的行号 datatype : "post", // 返回的数据类型 height : "auto", // mtype: "post", width:window.screen.availWidth-20, autowidth: false, shrinkToFit: true, colNames:['作业名称','用户名','数据类型','数据日期','开始时间','结束时间','执行状态','导出文件名称','文件条数'], colModel : [ {name : 'jobName',index :'jobName',width : 80,sortable : true,align : 'center'}, {name : 'userId',index : 'userId',width : 20,sortable : true,align : 'center'}, {name : 'dataType',index : 'dataType',width : 40,sortable : true,align : 'center'}, {name : 'txDate',index : 'txDate',width : 40,sortable : true,align : 'center'}, {name : 'startTime',index : 'startTime',width : 10,sortable : true,align : 'center'}, {name : 'endTime',index : 'endTime',width : 30,sortable : true,align : 'center'}, {name : 'exeStatus',index : 'exeStatus',width : 30,sortable : true,align : 'center'}, {name : 'expFileName',index : 'expFileName',width : 40,sortable : true,align : 'center'}, {name : 'count',index : 'count',width : 40,sortable : true,formatter:'number',align : 'center'}], viewrecords : true, sortname : "jobName", rowNum : 20, rowList : [10, 15, 20], jsonReader : { root : "rows", // 服务端保存数据的集合 repeatitems : false, page: "page", total: "total", records: "records", id:"jobName" }, pager : "#gridPager", hidegrid : false, multiselect: true, }).trigger('reloadGrid'); } ``` 上那样写对么?servlet接受不到发送的参数 返回的json数据不能是LIST格式的么,已经要是这样的么?List<Map<String, Object>> results
jqGrid使用treeGrid 每次点击ExpandColumn都发送一个新请并不展开对应子节点
前台js: $("#tb").jqGrid( { treeGrid : true, treeGridModel : 'adjacency', ExpandColumn : 'orgname', shrinkToFit : true, ExpandColClick: true, autowidth : true, url :QDevelopDomain + '/app/org/view', datatype : 'json', colNames : ['机构名称','机构编码','机构层级', '更新时间'], colModel : [{ name:'orgname', index:'orgname' },{ name : 'orgcode', index : 'orgcode', width : 220 }, { name : 'level', index : 'level', width : 400 }, { name : 'update_date', index : 'update_date', } ], jsonReader : { repeatitems : false }, treeReader : { level_field: "level", parent_id_field: "parent", leaf_field: "isLeaf", expanded_field: "expanded" , loaded_field:false }, mtype : "POST", height : $(this).height() * 0.87, pager:'#toolbar', ExpandColClick : true, onSelectRow:function(id){ console.log(id); }, 返回json数据 {"orgname":"机构列表","level":"0","orgcode":"0"}, {"parent":"0","orgname":"成都银行总行","level":"1","orgcode":"10000000","roles":"","update_date":"2016-01-06 09:13:22"}, {"parent":"10000000","orgname":"董事会办公室","level":"2","orgcode":"11100100","roles":"","update_date":"2016-01-06 09:13:22"}, {"parent":"10000000","orgname":"监事会办公室","level":"2","orgcode":"11100200","roles":"","update_date":"2016-01-06 09:13:22"}, {"parent":"10000000","orgname":"行长办公室","level":"2","orgcode":"11100300","roles":"","update_date":"2016-01-06 09:13:22"}, {"parent":"10000000","orgname":"人力资源部","level":"2","orgcode":"11100400","roles":"","update_date":"2016-01-06 09:13:22"} 页面: ![图片说明](https://img-ask.csdn.net/upload/201712/06/1512542895_862114.jpg) 出问题页面: ![图片说明](https://img-ask.csdn.net/upload/201712/06/1512542993_147272.jpg)
jqgrid addRowData在grid里没有其他行时可以正确添加,有行时则不能添加
jqgrid addRowData在grid里没有其他行时可以正确添加,有行时则不能添加,但是确实执行成功了。 [code="java"] alert("这是保存新的行"); var dataRow = { guid:data.expertiseVo.guid, typeName:data.expertiseVo.typeName, expertiseName:data.expertiseVo.expertiseName, expertiseNo:data.expertiseVo.expertiseNo, requiredLvl:data.expertiseVo.requiredLvl, materialId1:data.expertiseVo.materialId1, materialCnt1:data.expertiseVo.materialCnt1, materialId2:data.expertiseVo.materialId2, materialCnt2:data.expertiseVo.materialCnt2, materialId3:data.expertiseVo.materialId3, materialCnt3:data.expertiseVo.materialCnt3, materialId4:data.expertiseVo.materialId4, materialCnt4:data.expertiseVo.materialCnt4, materialId5:data.expertiseVo.materialId5, materialCnt5:data.expertiseVo.materialCnt5, materialId6:data.expertiseVo.materialId6, materialCnt6:data.expertiseVo.materialCnt6, productId:data.expertiseVo.productId, cd:data.expertiseVo.cd, description:data.expertiseVo.description } expertiseGrid.addRowData(data.expertiseVo.guid,dataRow,last); alert("添加新行结束"); [/code] 是ACTION返回的JSON数据。
关于jqgri传参问题,以及后台接收参数
现在有个需求:进入一个列表页面,初始化的时候没有数据查询,当点击查询按钮,附带查询条件时,把参数传到后台,处理并返回json数据这样一个过程。 现在的问题是:初始化页面时没有参数,这个是完成了,但是附带查询条件点击查询时,这个参数怎么传递,后台servlet怎么接收,现在是通过postData方式传递参数(postData:{"txDate":txDate,"jobNameStr":jobName},后台request接收不到数据) 而且还有个前台的小问题,点击查询时,怎么触发函数并把结果返回到页面 目前是现在这样写的,但是没什么作用。 ```function selectJobLog(){ var txDate=$("#txDate").val(); var jobName=$("#jobName").val(); $("#tableList").jqGrid({ url:"${pageContext.request.contextPath}/listLogDb?txDate="+txDate+"&jobNameStr"+jobName, //postData:{"txDate":txDate,"jobNameStr":jobName}, }).trigger('reloadGrid'); } ``` 希望懂的大神帮个忙,借用您的几分钟时间,谢谢了。
JqGrid会自动加载Hibernate的lazy属性字段吗?
后台使用hibernate的findByCriteria方法进行查询 [code="java"]@RequestMapping(value="/list") @ResponseBody public DataResponse<User> list(@RequestParam("page") String page, @RequestParam("rows") String rows, @RequestParam("sidx") String sidx, @RequestParam("sord") String sord ){ try { DataRequest request = new DataRequest(); request.setPage(StringUtils.isEmpty(page) ? 1 : Integer.valueOf(page)); request.setRows(StringUtils.isEmpty(rows) ? 20 : Integer.valueOf(rows)); request.setSidx(sidx); request.setSord(sord); return customSearchUtil.search(request, User.class); } catch (Exception e) { e.printStackTrace(); } return null; }[/code] customSearchUtil.search方法只是调用findByCriteria然后把数据返回. User类我已将一个多对多的属性针对JSON进行屏蔽 代码执行到return 语句都只打印了一句sql查询语句 但是方法结束到前台显示就会打印出查询role信息的sql语句 请问这是jqgrid的问题吗? 实体类如下 [code="java"]@Entity @Table(name="SYS_USER") @JsonIgnoreProperties(value={"hibernateLazyInitializer", "roles"}) public class User implements Serializable, UserDetails { @Id @SequenceGenerator(name = "SEQ_USER", sequenceName = "SEQ_USER") @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "SEQ_USER") private Integer id; @Column(name = "USERNAME", length = 100, nullable = false) private String username; @Column(name = "FULLNAME", length = 255) private String fullname; @Column(name = "PASSWORD", nullable = false) private String password; @Column(name = "ENABLED") private Integer isEnabled; @Column(name = "IS_ADMIN") private Integer isAdmin; @Column(name = "VERSION") private Integer version; @Cascade(value={CascadeType.SAVE_UPDATE}) @ManyToMany(fetch = FetchType.LAZY) @JoinTable(schema = "TRAIN", name = "SYS_USER_ROLE", joinColumns = { @JoinColumn(name = "USER_ID", referencedColumnName = "ID", nullable = false) }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID", nullable = false) }) Set<Role> roles;[/code]
jqgrid删除按钮出问题
jqgrid删除按钮出问题 <br />我写的代码如下: <br />function getGrid(){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 定义标题(列) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var c_fild = new Array(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var colm = new Array(); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c_fild = s_fild.split(","); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;c_fild.length;i++){ <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; colm.push({display: c_fild[i],name : c_fild[i], width :120, sortable : true, align: 'center'}); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(function(){ <br /> jQuery("#list2").jqGrid({ <br /> &nbsp;&nbsp; url: 'post.jsp?s_table='+s_table+'&amp;s_id='+s_id+'&amp;s_fild='+s_fild+'&amp;s_where='+s_where, <br /> datatype: "json", <br /> mtype: 'POST',&nbsp;&nbsp; <br /> /* <br /> &nbsp;&nbsp; colNames:['id','username', 'password', 'age','address'], <br /> &nbsp;&nbsp; colModel:[ <br /> &nbsp;&nbsp; {name:'id',index:'id', width:55}, <br /> &nbsp;&nbsp; {name:'username',index:'username', width:90}, <br /> &nbsp;&nbsp; {name:'password',index:'password', width:100}, <br /> &nbsp;&nbsp; {name:'age',index:'age', width:80, align:"right"}, <br /> &nbsp;&nbsp; {name:'address',index:'address', width:80, align:"right"} <br /> &nbsp;&nbsp; ], <br /> &nbsp;&nbsp; */ <br /> &nbsp;&nbsp; colModel:colm, <br /> &nbsp;&nbsp; rowNum:4, <br /> &nbsp;&nbsp; rowList:[4,20,30], <br /> &nbsp;&nbsp; pager: $('#pager2'), <br /> &nbsp;&nbsp; sortname: 'id', <br /> &nbsp;&nbsp;&nbsp; viewrecords: true, <br /> &nbsp;&nbsp;&nbsp; sortorder: "asc", <br /> &nbsp;&nbsp;&nbsp; //height:'500px', <br /> &nbsp;&nbsp;&nbsp; //width:'800px', <br /> jsonReader: {//jsonReader来跟服务器端返回的数据做对应&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root: "rows",&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; page: "page",&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total: "total",&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; repeatitems : false&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },&nbsp; <br /> &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; caption:"JSON Example" <br /> }).navGrid('#pager2',{editfunc:doEdit,addfunc:doAdd,delfunc:doDel}); <br /> <br /> }); <br />} <br />var doEdit=function(rowid){alert(rowid);}; <br />var doAdd=function(){alert(126);}; <br />var doDel=function(){alert(123);}; <br /> <br /> <br /> <br />为什么选中行点删除的时候 没有123弹出,而是弹出默认的删除界面。 <br />而点增加修改时没有问题。 <br />请用过的人指点。 <br />谢谢了!
火狐浏览器详细页面点×提示弹出框,怎么去掉呀
![](https://img-ask.csdn.net/upload/201610/09/1475996724_352488.png) 跳转页面用的 var rtn = showModalDialog(temppath,obj,'dialogWidth:800px;dialogHeight:500px;center:yes;help:no;resizable:yes;status:no;location:no;'); if(rtn=="true"){//详细页面关闭后刷新列表 test(); } 返回用下面的方法不提示弹出框了,但是点击×开始有弹出框 function back() { window.returnValue = "true"; window.opener = null; window.close(); } 这是一个详细页面我就是用ajax查了下后台数据: jQuery("#list2").jqGrid({ url : path + '/departmentCheckActionnewYSLB.do?method=queryDetail&rid='+rid,// 数据源 //url : path + '/departmentCheckActionnew.do?method=query2&yslx='+d, datatype : "json",// 数据类型 colNames : ['审批状态', '级别','审批意见','审批人','审批日期'],// 标题列 colModel : [{name : 'spzt',index : 'SPBZ',width : 50,sortable : false,align : "center"}, {name : 'jb',index : 'JB',width : 50,sortable : false,align : "center"}, {name : 'spyj',index : 'SPYJ',width : 50,sortable : false,align : "center"}, {name : 'spr',index : 'SPRXM',width : 50,sortable : false,align : "center"}, {name : 'sprq',index : 'SPRQ',width : 50,sortable : false,align : "center"} ],// 每列的参数 rowNum : 5, // 默认每页行数 autowidth : true, height : 100,// grid高度 shrinkToFit : true, multiselect : false, cellEdit : false, cellsubmit : 'clientArray', loadtext : '请求数据中.....', //scrollOffset : 0, //rowList : [10, 20, 30, 50, 100], postData : { flag : where }, //pager : '#pager2', sortname : 'l.sprq desc', mtype : "post", viewrecords : true, sortorder : "", //pagerpos : "left", //recordpos : "right", beforeSelectRow : function(rowid, e, col) { if (col == "0") { return true; } else { return false; } } }); jQuery("#list2").jqGrid('navGrid', '#pager2', {position:"center",edit:false,add : false,del : false,search:false,refresh:false}); 但是怎么知道我这个页面用的是location.href还是reload呀 父页面的查询方法是: function test(){ var nyq = document.getElementById("nyq").value; var nyz = document.getElementById("nyz").value; var dqjbspzt = document.getElementById("dqjbspzt").value; var sfzj = document.getElementById("sfzj").value; var ssbm = document.getElementById("ssbm").value; var bxzt = document.getElementById("bxzt").value; var fykm = document.getElementById("fykm").value; var spzt = document.getElementById("spzt").value; var ssxmbh = document.getElementById("ssxmbh").value; var ssxmmc = document.getElementById("ssxmmc").value; var ysbh = document.getElementById("ysbh").value; var filter = " 1 = 1 "; if(dqjbspzt == "1"){ sfkbj=true; filter = filter + "AND B.DQJBSPR = '"+useraccount+"' and (select EDUBIS.GETYSSP_FLAG(b.MX_RID,b.JB,b.LEVEL_END,l.SPZT,'" +useraccount + "') from dual) = '1' AND B.LCZT = '0' and l.spzt='1'"; }else if(dqjbspzt == "3"){ sfkbj=false; filter = filter + " and (select EDUBIS.GETYSSP_FLAG(b.MX_RID,b.JB,b.LEVEL_END,l.SPZT,'" +useraccount + "') from dual) = '0'"; } if (null != nyq && "" != nyq) { filter = filter + " and to_char(ysssny,'yyyy-MM') >= '"+nyq+"' "; } if (null != nyz && "" != nyz) { filter = filter + " and to_char(ysssny,'yyyy-MM') <= '"+nyz+"' "; } if (nyq>nyz){ alert("预算年月(起)大于(止)"); return false; } if (null != sfzj && "" != sfzj) { filter = filter + " and l.sfzj = '"+sfzj+"'"; } /*if (null != yslx && "" != yslx) { filter = filter + " and l.yssqlb ='"+yslx+"' "; }*/ if (null != ssbm && "" != ssbm) { filter = filter + " and l.jspbmbh = '"+ssbm+"' "; } if (null != bxzt && "" != bxzt) { filter = filter + " and l.bxzt = '"+bxzt+"' "; } if (null != fykm && "" != fykm) { filter = filter + " and l.fykm = '"+fykm+"' "; } if (spzt=="3") { sfkbj=false; filter = filter + " and l.spzt = '"+spzt+"'"; }else if(null != spzt && "" != spzt){ filter = filter + " and l.spzt = '"+spzt+"'"; } if (null != ssxmbh && "" != ssxmbh) { filter = filter + " and l.ssxmbh= '"+ssxmbh+"' "; } if (null != ssxmmc && "" != ssxmmc) { filter = filter + " and l.xmmc= '"+ssxmmc+"' "; } if (null != ysbh && "" != ysbh) { filter = filter + " and l.ysbh ='"+ysbh+"' "; } where=filter; $("#list2").jqGrid('setGridParam',{postData :{ flag : where}}).trigger('reloadGrid',[{page:1}]); } 在里面拼了where条件
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的Tencent Kona JDK,分布式HTAP数据库 TBase,企业级容器平台TKEStack,以及高性能图计算框架Plato。短短一周之内,腾讯开源了五大重点项目。其中,TubeMQ是腾讯大数据平台部门应用的核心组件,...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
相关热词 如何提升c#开发能力 矩阵乘法c# c#调用谷歌浏览器 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天
立即提问