运行效果图
前端页面代码
<div class="line1">
<div id="mainDiv" style="display: inline-block">
<div id="dateContro" style="margin-left: 0px; margin-top: 0px; padding-top: 0px;">
查询时间:<input type="datetime-local" id="startDate" />至<input type="datetime-local" id="endDate" />
<input type="button" id="checkBtn" value="查询" onclick="checkDate()" />
</div>
<div id="main1" style="width: 500px; height: 500px;">
</div>
</div>
js文件代码
function loadfourLine() {
var myChart = echarts.init(document.getElementById('main1'), 'macarons');
// 显示标题,图例和空的坐标轴
myChart.setOption({
dataZoom: [
{ // 这个dataZoom组件,默认控制x轴。
type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
start: 0, // 左边在 10% 的位置。
end: 100 // 右边在 60% 的位置。
},
{ // 这个dataZoom组件,也控制x轴。
type: 'inside', // 这个 dataZoom 组件是 inside 型 dataZoom 组件
start: 0, // 左边在 10% 的位置。
end: 100 // 右边在 60% 的位置。
}
],
title: {
text: '温度测试'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['手机', '电脑', '风扇', '空调'],
},
toolbox: {
show: true,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
magicType: { show: true, type: ['line', 'bar'] },
restore: { show: true },
saveAsImage: { show: true }
},
},
calculable: true,
xAxis: [{
type: 'category',
boundaryGap: false, //取消左侧的间距
data: [],
axisLabel: {interval:0,rotate:40 },
axisPointer: {
type: 'shadow'
}
}],
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
yAxis: {
type: 'value',
axisLabel: { formatter: '{value}(℃)' }
},
series: [
{
name: '手机',
type: 'line',
data: []
},
{
name: '电脑',
type: 'line',
data: []
},
{
name: '风扇',
type: 'line',
data: []
},
{
name: '空调',
type: 'line',
data: []
}
],
});
var dateData1 = []; //类别数组(实际用来盛放X轴坐标值)
var temp1 = [];
var temp2 = [];
var temp3 = [];
var temp4 = [];
//myChart.showLoading(); //数据加载完之前先显示一段简单的loading动画
$.ajax({
type: 'get',//请求的方式
url: './IHandler.ashx/ProcessRequest',//请求数据的地址
dataType: 'json', //返回数据形式为json
async: "true", //异步加载
success: function (result) {
//请求成功时执行该函数内容,result即为服务器返回的json对象
$.each(result.phone, function (index, item) {
dateData1.push(item.dateData1);
temp1.push(item.temValue);
});
$.each(result.computer, function (index, item) {
// dateData1.push(item.dateData1); //逐个取出并放到时间数组当中
temp2.push(item.temValue);
});
$.each(result.fan, function (index, item) {
// dateData1.push(item.dateData1);
temp3.push(item.temValue);
});
$.each(result.kong, function (index, item) {
// dateData1.push(item.dateData1);
temp4.push(item.temValue);
});
myChart.setOption({ //加载数据图表
xAxis: {
data: dateData1
},
series: [{
data: temp1
},
{
data: temp2
},
{
data: temp3
},
{
data: temp4
}]
});
},
error: function (errorMsg) {
//请求失败时执行该函数
alert("图表请求数据失败!");
myChart.hideLoading();
}
});
};
loadfourLine();
//在此处调用时实时查询要加上setinterval函数
function checkDate() {
var start = new Date($("#startDate").val()).getTime();
var end = parseInt(new Date($("#endDate").val()).getTime());
var myChart = echarts.init(document.getElementById('main1'), 'macarons');
// 显示标题,图例和空的坐标轴
myChart.setOption({
dataZoom: [{
id: 'dataZoomX',
type: 'slider',
xAxisIndex: [0],
filterMode: 'filter', // 设定为 'filter' 从而 X 的窗口变化会影响 Y 的范围。
start: 30,
end: 70
},
{
id: 'dataZoomY',
type: 'slider',
yAxisIndex: [0],
filterMode: 'empty',
start: 20,
end: 80
}],
title: {
text: '温度测试'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['手机', '电脑', '风扇', '空调'],
},
toolbox: {
show: true,
feature: {
mark: { show: true },
dataView: { show: true, readOnly: false },
magicType: { show: true, type: ['line', 'bar'] },
restore: { show: true },
saveAsImage: { show: true }
},
},
calculable: true,
xAxis: [{
type: 'category',
boundaryGap: false, //取消左侧的间距
data: [],
axisLabel: { interval: 0, rotate: 40 },
axisPointer: {
type: 'shadow'
}
}],
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
yAxis: {
type: 'value',
axisLabel: { formatter: '{value}(℃)' }
},
dataZoom: [{
y: 755,
type: 'slider',
orient: "horizontal",
show: true,
start: 0,
end: 90
}],
series: [
{
name: '手机',
type: 'line',
data: []
},
{
name: '电脑',
type: 'line',
data: []
},
{
name: '风扇',
type: 'line',
data: []
},
{
name: '空调',
type: 'line',
data: []
}
],
});
var dateData1 = []; //类别数组(实际用来盛放X轴坐标值)
var temp1 = [];
var temp2 = [];
var temp3 = [];
var temp4 = [];
//myChart.showLoading(); //数据加载完之前先显示一段简单的loading动画
$.ajax({
type: 'get',//请求的方式
url: './json/test.txt',//请求数据的地址
dataType: 'json', //返回数据形式为json
async: "true",
success: function (result) {
//请求成功时执行该函数内容,result即为服务器返回的json对象
$.each(result.phone, function (index, item) {
var tempdata = parseInt(new Date(item.dateData1).getTime());
if (tempdata >= start && tempdata <= end) {
dateData1.push(item.dateData1);
temp1.push(item.temValue);
}
});
$.each(result.computer, function (index, item) {
// dateData1.push(item.dateData1); //逐个取出并放到时间数组当中
var tempdata = parseInt(new Date(item.dateData1).getTime());
if (tempdata >= start && tempdata <= end) {
temp2.push(item.temValue);
}
});
$.each(result.fan, function (index, item) {
// dateData1.push(item.dateData1);
var tempdata = parseInt(new Date(item.dateData1).getTime());
if (tempdata >= start&& tempdata <= end) {
temp3.push(item.temValue);
}
});
$.each(result.kong, function (index, item) {
// dateData1.push(item.dateData1);
var tempdata = parseInt(new Date(item.dateData1).getTime());
if (tempdata >= start && tempdata <= end) {
temp4.push(item.temValue);
}
});
myChart.setOption({ //加载数据图表
xAxis: {
data: dateData1
},
series: [{
data: temp1
},
{
data: temp2
},
{
data: temp3
},
{
data: temp4
}]
});
},
error: function (errorMsg) {
//请求失败时执行该函数
alert("图表请求数据失败!");
myChart.hideLoading();
}
});
};
后端一般处理程序代码
public string getdata()
{
MyClass mc = new MyClass();
SqlConnection conn = mc.conn("sbdatabase");
conn.Open();//切记连接完就要打开
string _json;
string _json1, _json2, _json3, _json4;
Boolean isfirst1=true;
Boolean isfirst2=true;
Boolean isfirst3=true;
Boolean isfirst4=true;
string _cmd = "SELECT T_sb.sbID, T_sb.sbName, T_ls.ls_id, T_ls.sb_id, T_ls.sb_wd, T_ls.sb_yl, T_ls.sb_sj FROM T_ls INNER JOIN T_sb ON T_ls.sb_id = T_sb.sbID";
SqlDataReader dr = mc.getdatareader(_cmd);
_json1 = "\"" + "phone" + "\"" + ":["; _json2 = "\"" + "computer" + "\"" + ":["; _json3 = "\"" + "fan" + "\"" + ":["; _json4 = "\"" + "kong" + "\"" + ":[";
while (dr.Read())
{
//testbox.Text += dr["sbID"].ToString().Trim() ;
//string a = dr["sbID"].ToString().Trim();
//testbox.Text +=a;
// Boolean e15 = a=="sb20";
//testbox.Text += e15;
if (Equals(dr["sbID"].ToString().Trim(),"sb10") && isfirst1)
{
_json1 += "{";
_json1 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
_json1 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
_json1 += "}";
isfirst1 = false;
}
else if (Equals(dr["sbID"].ToString().Trim(), "sb10") && !isfirst1)
{
_json1 += ",{";
_json1 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
_json1 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
_json1 += "}";
}
else if (Equals(dr["sbID"].ToString().Trim(), "sb20") && isfirst2)
{
_json2 += "{";
_json2 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
_json2 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
_json2 += "}";
isfirst2 = false;
}
else if (Equals(dr["sbID"].ToString().Trim(), "sb20") && !isfirst2)
{
_json2 += ",{";
_json2 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
_json2 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
_json2 += "}";
}
else if (Equals(dr["sbID"].ToString().Trim(), "sb30") && isfirst3)
{
_json3 += "{";
_json3 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
_json3 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
_json3 += "}";
isfirst3 = false;
}
else if (Equals(dr["sbID"].ToString().Trim(), "sb30") && !isfirst3)
{
_json3 += ",{";
_json3 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
_json3 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
_json3 += "}";
}
else if (Equals(dr["sbID"].ToString().Trim(), "sb40") && isfirst4)
{
_json4 += "{";
_json4 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
_json4 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
_json4 += "}";
isfirst4 = false;
}
else if (Equals(dr["sbID"].ToString().Trim(), "sb40") && !isfirst4)
{
_json4 += ",{";
_json4 += "\"" + "temValue" + "\":\"" + dr["sb_wd"] + "\",";
_json4 += "\"" + "dateData1" + "\":\"" + dr["sb_sj"] + "\"";
_json4 += "}";
}
}
_json = "{" + _json1 +"],"+_json2 +"],"+_json3 +"],"+_json4 +"]"+"}";
// testbox.Text += _json;
conn.Close();
return _json;
}
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string s = getdata();
context.Response.Write(s);
}
完整Demo工程文件下载地址内含数据库备份文件
ASP.Net实现SQL动态绑定Echarts图表Demo完整源码