关于echarts、layer.js和jqGrid的知识点

时间:2023-03-08 20:04:47
关于echarts、layer.js和jqGrid的知识点

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

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

1、echarts的使用

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

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

 {
name : 'xxx',
value:" + xxx + ",
itemStyle:{
normal:{
label:{
show: true
},
labelLine: {
show: true
}
}
}
}此处为C#代码,可用循环来生成echarts需要的json,在原来的json类型中,加入itemStyle项,这样就能够调整label和labelLine,写在其它地方不可以。

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

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

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

 xAxis: [{
type: 'category',
data: arg.data.categories,
triggerEvent: true //在echart3中,设置triggerEvent为true即可。这样柱子跟x轴label都可以点
}],
 在echarts2中把clickable设为true的属性
xAxis: [{
type: 'category',
data: datas[0].categories,
axisLabel:{
clickable : true }
}],
1 var xxx = echarts.init(document.getElementById('xxx'));
xxx.on('click', function (params) {
if (params.name == undefined) {
在这里根据params来判断是点击的柱子还是x轴label,可以用params里面的其他参数判断,不一定用name
} else {
}
});

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

3、jqGrid的使用

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

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

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

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