jqGrid是我用过最好的基于jQuery的列表插件,在项目中试用后效果很不错,基于jQuery UI的界面美观并且可以更好皮肤……
花了一天时间实现了增删改和查询功能,但是在查询中文的时候遇到了乱码问题……诡异,说一下情况:
- 我的开发环境是全站UTF-8,而且有编码Filter;
- jqGrid版本为:3.6.4
在后台断点调试发现如下特点:
1、新增、编辑没有乱码问题
2、查询中文后台时得到的参数是乱码
然后就考虑了,如果是开发环境问题那肯定全部都有乱码问题,所以问题应该在jqGrid的查询函数里面,最后通过Firebug找到了:
c.find(".ui-search").click(function() {
这一行是查询功能的开始也就是点击“查询”的触发函数
所以根据以往的经验在这里把参数值编码一次就可以了,也就是encodeURIComponent函数具体修改如下:
- 找到第6202行
- 找到代码
6201 6202 6203
var p = jQuery(this).find("select[name='field'] :selected").val(), g = jQuery(this).find("select[name='op'] :selected").val(), f = jQuery(this).find("input.vdata,select.vdata :selected").val();
- 现在看到这里的3行代码就是查询时获取参数的3个变量,我们要修改的就是这里,最终代码:
6202 6203 6204
var p = encodeURIComponent(jQuery(this).find("select[name='field'] :selected").val()), g = encodeURIComponent(jQuery(this).find("select[name='op'] :selected").val()), f = encodeURIComponent(jQuery(this).find("input.vdata,select.vdata :selected").val());
到此大功告成
——————————–分割线———————————–
为了方便网友顺便提供本人修改后的jqGrid3.6.4版本的源码,分为3中类型(未压缩、迷你版、压缩版pack)
下载:jquery.jqGrid.3.6.4.js 共 145 次
下载:jquery.jqGrid.min.3.6.4.js 共 125 次
下载:jquery.jqGrid.pack.3.6.4.js 共 97 次
声明:该日志由咖啡兔发表,你可以自由发表评论或转载到你的网站或博客。
转载请注明转自 what is the RIA? just it…||咖啡兔 ™
原始链接:http://www.wsria.cn/archives/961 | jqGrid查询中文乱码问题解决办法
Popularity: 25%