关于echartslayer.js和jqGrid的知识点

Posted 读万卷书,行万里路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于echartslayer.js和jqGrid的知识点相关的知识,希望对你有一定的参考价值。

使用echarts和layer.js直接去官方文档,能解决大部分问题。

但是有些问题,解释不够清楚,在这里记录一下。

1、echarts的使用

     第一点:关于echarts的labelline在数据为零的时候,不显示的问题。

  调整option里面的data的内容为:

 1 { 
 2     name : xxx,
 3     value:" + xxx + ",
 4     itemStyle:{
 5          normal:{
 6             label:{
 7                  show: true
 8               },
 9             labelLine: {
10                  show: true
11               }
12         }
13     }
14 }此处为C#代码,可用循环来生成echarts需要的json,在原来的json类型中,加入itemStyle项,这样就能够调整label和labelLine,写在其它地方不可以。    

 在取得echarts的option以后,用js,进行判断是否显示

1        var opt = option.series[0];//有可能有多个series,根据需要选择调整哪个series
2        function hidePieline(opt) {
3           jQuery.each(opt.data, function (i, item) {
4            if (item.value == 0) {
5             item.itemStyle.normal.labelLine.show = false;
6             item.itemStyle.normal.label.show = false;
7             }
8           });
9        }  

  第二点:关于echarts的柱图,点击X轴label的问题

    

1         xAxis: [{
2            type: ‘category‘,
3            data: arg.data.categories,
4            triggerEvent: true  //在echart3中,设置triggerEvent为true即可。这样柱子跟x轴label都可以点
5         }],

 

1                 在echarts2中把clickable设为true的属性
2                     xAxis: [{
3                         type: ‘category‘,
4                         data: datas[0].categories,
5                         axisLabel:{
6                             clickable : true
7                         }
8                     }],       

 

1             var xxx = echarts.init(document.getElementById(‘xxx‘));
2             xxx.on(‘click‘, function (params) {
3                 if (params.name == undefined) {
4               在这里根据params来判断是点击的柱子还是x轴label,可以用params里面的其他参数判断,不一定用name
5                 } else {
6                 }
7             });            

2、layer.js的使用。参看官方文档即可。

3、jqGrid的使用

     在使用jqGrid的时候,为colModel直接传递DateTime类型时,会直接识别为/Date(1446704778000)/,可以通过正则表达式来转换

1 eval(rowObject.PlanFinishDate.replace(/\/Date\((\d+)\)\//gi, "new Date($1)")).format(‘yyyy-M-d‘);

 format方式是用JS自定义的方法

 1             Date.prototype.format = function (fmt) {
 2                 var o = {
 3                     "M+": this.getMonth() + 1, //月份 
 4                     "d+": this.getDate(), //
 5                     "h+": this.getHours(), //小时 
 6                     "m+": this.getMinutes(), //
 7                     "s+": this.getSeconds(), //
 8                     "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
 9                     "S": this.getMilliseconds() //毫秒 
10                 };
11                 fmt = fmt || "yyyy-MM-dd";
12                 if (/(y+)/.test(fmt))
13                     fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
14                 for (var k in o)
15                     if (new RegExp("(" + k + ")").test(fmt))
16                         fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
17                 return fmt;
18             }

 

以上是关于关于echartslayer.js和jqGrid的知识点的主要内容,如果未能解决你的问题,请参考以下文章

关于jqGrid使用二级表头拖拽导致表头错位问题解决

在页脚工具栏上带有 MENUTOOLBAR 和 Listbox 的 Jqgrid

关于JS 事件冒泡和onclick,click,on()事件触发顺序

寻呼机在带有 JSON 的 jqGrid 中没有按预期工作

JavaScript整合JqGrid完整实例

你好,我看你关于jtable的编辑列改为非编辑列, 你知道jqgrid的编辑列如何停止编辑吗?