近日有个需求要用到jqgrid,原本用着一切都很顺利,但是在需求变动后,只是修改部分字段名称jqgrid就不显示数据了,后台数据也能传到前台,但是就是不给我显示,到嘴的肉就是没法吃,蛋疼,郁闷都无法形容我的感受。。。。。。我开始怀疑自个了

  

jQuery("#grid-table").jqGrid({
url:'<%=request.getContextPath()%>/salesAnalysis.do?method=getIntelligenceSaleTree',
postData:getParam(),//参数
datatype: "json",
jsonReader : {
root:"data",//array或者List数据
page: "page",//当前页码
total: "pages",//总页数
records: "count",//总记录数
repeatitems: false
},
colNames:['地区','城市','区县','客户名称','期初库存','购进数量','销量数量','期末库存'],
colModel:[
{name:'PROV_NAME',index:'PROV_NAME', sorttype:'text'},
{name:'CITY_NAME',index:'CITY_NAME',},
{name:'AREA_NAME',index:'AREA_NAME'},
{name:'CLIENT_NAME',index:'CLIENT_NAME',summaryType:'count', summaryTpl : '{0}'},
{name:'BEGIN_STOCK',index:'BEGIN_STOCK', align:"right", sorttype:'number',formatter:'number',summaryType:'sum'},
{name:'CODE_PURCHASE_COUNT',index:'CODE_PURCHASE_COUNT', align:"right",sorttype:'number',formatter:'number',summaryType:'sum'},
{name:'CODE_SALE_COUNT',index:'CODE_SALE_COUNT', align:"right",sorttype:'number',formatter:'number', summaryType:'sum'},
{name:'END_STOCK',index:'END_STOCK',align:"right",sorttype:'number',formatter:'number', summaryType:'sum'}
],
rowNum:10,
rowList:[10,20,30],
height: 'auto',
autowidth: true,
pager: '#gridpager',
sortname: 'PROV_NAME',
viewrecords: true,
sortorder: "desc",
caption:"智能销售树",
grouping: true,
groupingView : {
groupField : ['PROV_NAME','CITY_NAME','AREA_NAME'], //分组字段
groupColumnShow : [true,false,false],//是否隐藏分组字段
groupText : ['<b>{0}</b>'],
groupCollapse : false,
groupOrder: ['asc'],// 分组后的排序
groupSummary : [true],
groupDataSorted : true,// 分组中的数据是否排序
showSummaryOnHide : false //是否在分组底部显示汇总信息并且当收起表格时是否隐藏下面的分组
},
footerrow: false,
userDataOnFooter: false ,
gridComplete : function() {
var ids = $("#grid-table").jqGrid("getDataIDs");
for(var i=0;i < ids.length;i++){
var cl = ids[i];
//置空
var city = "";
$("#grid-table").jqGrid("setRowData",cl,{PROV_NAME:city});
}
},
loadComplete : replaceCss
});

  各种尝试,包括变换请求方式,本地json,都是无法解决,郁闷之极,周末都在想这个问题,终于,周一早上Google了才发现jqgrid对json的数据格式校验异常的严格,包括对单引号双引号,jqgrid要求用双引号,如果你用了单引号可得注意了,但是我发现的都是双引号。

  那我的问题出在哪儿呢?

  

  我从firebug里把传到前台的json复制出来放到在线的json检测工具里(http://www.bejson.com/index.php),问题发现了,原来里面有个字段数据是"长清区\0\0",就多了\0\0 jqgrid就无法显示了,OMG......我后台的数据都是我临时添加的用于测试的,于是乎把数据库中\0\0去掉就解决了,爽。。。。。。

  总结:1,首先要对自个写的代码要有足够的自信,这个在解决问题的时候要少走很多弯路。

     2,要利用工具快速的缩小问题的范围,如firebug就知道数据是正常传递的。

     3,要对最大化地了解所用技术的脾气。就比如我这个。当然参透api是最好的了。

关于jqgrid数据不显示问题的更多相关文章

  1. 利用JqGrid结合ashx显示列表之一

    最近项目决定运用JqGrid列表控件显示相关数据,以前接触比较多还是easyui和Ext.Net的列表控件,文章简单写的小实例进行一个总结: 1:引入相关的JS及CSS文件,JqGrid目前可以利用J ...

  2. EXTJS中grid的数据特殊显示,不同窗口的数据传递

    //EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...

  3. input中空格后的数据不显示

    bug,input中空格后的数据不显示     昨天在修bug,有一个bug是用户修改的个人信息的地址栏,输入有空格的话,空格后面的内容存不上,而且没有报错,奇怪了,只好跟踪下. 页面上的输入框就是个 ...

  4. easyui datagrid 没数据时显示滚动条的解决方法

    今天解决了一个bug,因为datagrid有多列,可是当没有数据的时候,后面的列无法通过滚动条拉动来显示,比较麻烦,而需求要求没有数据也要拉动滚动条查看后面有什么列,一开始在网上找了一些资料,发现都不 ...

  5. ENVI软件操作之【数据的显示操作】

    数据的显示操作主要包括以下的一些简单窗口操作 1.文件列表管理 1)可用的波段列表Available Bands List,使用于存取ENVI图像文件和显示图像文件的主要控制对话框.无论何时何地打开一 ...

  6. 从多个XML文档中读取数据用于显示webapi帮助文档

    前言: 你先得知道HelpPageConfig文件,不知道说明你现在不需要这个,所以下文就不用看了,等知道了再看也不急.当然如果你很知道这个,下文也不用看了,因为你会了. 方法一: new XmlDo ...

  7. 实现easyui datagrid在没有数据时显示相关提示内容

    本示例实现easyui datagrid加载/查询数据时,如果没有相关记录,则在datagrid中显示没有相关记录的提示信息,效果如下图所示 本实例要实现如下图所示的效果: 本示例easyui版本为1 ...

  8. easy ui datagrid在没有数据时显示相关提示内容

    $(function () { $('#dg').datagrid({ fitColumns: true, url: 'product.json', pagination: true, pageSiz ...

  9. 扩展:gridview 空数据时显示表头

    2015年7月14日16:50:06  Gridview 默认展示数据时,若数据为空,则表格不显示,显示不美观. 针对此问题进行扩展: using System.Web.UI.WebControls; ...

随机推荐

  1. spring aop的使用

    使用上次整合的s2sh工程,加入aop的功能.aop(面向切面编程)是一种对oop的完善,比如在进行数据库操作的时候执行方法前或者后加入一条日志记录,使用一个额外的类去做日志操作,让dao类专注地做它 ...

  2. yield和send的执行循序彻底搞清

    yield: 对于yield方法和Generator的send同时使用时的执行顺序一直搞不清,今天看到这篇 理解PHP中的Generator 加上测试,终于搞清了. 总结一下上文中的结论: Gener ...

  3. Python之路【第二十一篇】Django ORM详解

    ORM回顾 关系对象映射(Object Relational Mapping,简称ORM). django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表. 对于ORM框 ...

  4. 简述block

    block传值也适用于从后往前传值 先介绍block的基本知识 /** * 1.如何定义一个Block变量 2.怎样给定义的Block变量赋初值 3.如何冲定义Block类型 4.如何使用Block实 ...

  5. [Head First设计模式]餐馆中的设计模式——命令模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  6. go智能提示(重要)

    使用VIM开发go程序时,智能提示是一个大问题. 最终解决方案是使用 YCM,它是使用 gocode 来进行智能提示的.一切配置好之后,你会发现标准库和第三方库都可以智能提示,但自己写的包却不能,猜想 ...

  7. 【安卓】安卓res文件夹下的资源文件与R.java文件里面类的对应关系

    对于drawable.layout.menu文件夹下的每一个文件都分别会在R.java文件里面生成drawable.layout.menu类的一个常量,类名就是文件夹的名字,常量的名字就是文件名字. ...

  8. JS中的 new 操作符简单理解

    首先上一一个简单的 new 操作符实例 var Person = function(name){ this.name = name; this.say = function(){ return &qu ...

  9. runtime的黑魔法

    要说明runtime,首先要明白objc这门语言,是基于C的封装.真是因为runtime,objc才有了面对对象的特性. 也就说,所有objc的语言,在运行时都会转换成C. 也是基于这样的特性,run ...

  10. python function parameter

    Python 2.7.10 (default, Oct 14 2015, 16:09:02) [GCC 5.2.1 20151010] on linux2 Type "copyright&q ...