62,046
社区成员
发帖
与我相关
我的任务
分享
<script type="text/javascript">
// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});
// 使用
require(
[
'echarts',
'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
],
function (ec) {
// 基于准备好的dom,初始化echarts图表
var myChart = ec.init(document.getElementById('divProgress'));
var option = {
tooltip: {
show: true
},
legend: {
data: ['销量']
},
xAxis: [
{
type: 'category',
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
"name": "销量",
"type": "bar",
"data": [5, 20, 40, 10, 10, 20]
}
]
};
// 为echarts对象加载数据
myChart.setOption(option);
}
);
</script>
<div id="divProgress" class="panel-body" style="height:260px;">
Panel content
</div>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick" ></asp:Timer>
protected void Timer1_Tick(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(UpdatePanel3, UpdatePanel3.GetType(), "", "require.config();", true);
ScriptManager.RegisterStartupScript(UpdatePanel3, UpdatePanel3.GetType(), "", "require();", true);
}
window.setInterval(function () {
var data = [test, 5, 10, 40, 20, 10];
$.get("SQLTest.ashx",function(responseTxt,statusTxt,xhr)
{
test=responseTxt;
//if (statusTxt == "success")alert(test);
if (statusTxt == "error")
alert("Error: " + xhr.status + ": " + xhr.statusText);
});
data = [test, 5, 10, 40, 20, 10];
refreshData(data);
},3000);
function refreshData(data){
if(!myChart){
return;
}
//更新数据
var option = myChart.getOption();
option.series[0].data = data;
myChart.setOption(option);
}
对了高手,我如果想系统的学会这一系列的方法,大概要去学习那些内容? JavaScript、jQuery、还有? 而且看你帮我写的refreshData(data) 那个函数就感觉你的Echart很熟练,以后不免再请教。
window.setTimeout(function(){
var data;
$.get("getdata.ashx",function(test){
//返回值是字符串类型,parseInt转成整数
data = [parseInt(test), 5, 10, 40, 20, 10];
} );
refreshData(data);
},3000);
[/quote]
高手,非常感谢,我去w3c看了一天jQuery,感觉有所收获,
但是暂时只写了这么一段
$(document).ready(function () {
$("button").click(function () {
$("#p1").load("Content/progress.txt", function (responseTxt, statusTxt, xhr) {
test = responseTxt;
if (statusTxt == "success")
alert(test);
if (statusTxt == "error")
alert("Error: " + xhr.status + ": " + xhr.statusText);
});
});
});
只会用load方法去一个txt里面读取数据(昨天尝试用get方法时,不知道什么原因没成功)。
我想问一下,
$.get("getdata.ashx",function(test)
中的getdata.ashx里面大概是个什么格式?
window.setTimeout(function(){
var data;
$.get("getdata.ashx",function(test){
//返回值是字符串类型,parseInt转成整数
data = [parseInt(test), 5, 10, 40, 20, 10];
} );
refreshData(data);
},3000);
"data": [5, 20, 40, 10, 10, 20]
数据刷新成 window.setTimeout(function(){
var data = [test, 5, 10, 40, 20, 10];
refreshData(data);
},3000);
这种效果。
test是我从后台读取的整形数据,请问我有没什么办法可以让这种数据刷新不断的进行下去?<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
<script type="text/javascript">
var int = self.setInterval("function()", 50);
var prvalue =<%=ProcessData%>
// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});
// 使用
require(
[
'echarts',
'echarts/chart/gauge' // 使用柱状图就加载bar模块,按需加载
],
function (ec) {
// 基于准备好的dom,初始化echarts图表
var myChart = ec.init(document.getElementById('divProgress'));
var option = {
tooltip : {
formatter: "{a} <br/>{b} : {c}%"
},
animation: false,
toolbox: {
show : false,
feature : {
mark : {show: true},
restore : {show: true},
saveAsImage : {show: true}
}
},
series : [
{
name:'业务指标',
type:'gauge',
splitNumber: 10, // 分割段数,默认为5
axisLine: { // 坐标轴线
lineStyle: { // 属性lineStyle控制线条样式
color: [[0.2, '#ff4500'], [0.8, '#5BC0DE'], [1, '#228b22']],
width: 8
}
},
axisTick: { // 坐标轴小标记
splitNumber: 10, // 每份split细分多少段
length :12, // 属性length控制线长
lineStyle: { // 属性lineStyle控制线条样式
color: 'auto'
}
},
axisLabel: { // 坐标轴文本标签,详见axis.axisLabel
textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
color: 'auto'
}
},
splitLine: { // 分隔线
show: true, // 默认显示,属性show控制显示与否
length :30, // 属性length控制线长
lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式
color: 'auto'
}
},
pointer : {
width : 5
},
title : { //标题,现在的标题就是 ‘完成率’
show : true,
offsetCenter: [0, '-40%'], // x, y,单位px
textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
fontWeight: 'bolder',
color: '#FFFFFF',
}
},
detail : {
formatter:'{value}%',
textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
color: 'auto',
fontWeight: 'bolder'
}
},
//data: [{ value: document.getElementById("HiddenField1").value, name: '完成率' }]
prvalue: prvalue + 1,
data: [{ value: prvalue, name: '完成率' }]
}
]
};
// 为echarts对象加载数据
myChart.setOption(option);
}
);
/* clearInterval(timeTicket);
timeTicket = setInterval(function (){
option.series[0].data[0].value = (Math.random()*100).toFixed(2) - 0;
myChart.setOption(option,true);
}, 2000)*/
/*//这里用setTimeout代替ajax请求进行演示
window.setTimeout(function(){
var data = [{ value: 25, name: '完成率' }];
refreshData(data);
},1000);
function refreshData(data){
if(!myChart){
return;
}
//更新数据
var option = myChart.getOption();
option.series[0].data = data;
myChart.setOption(option);
}
*/
</script>
<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
<script type="text/javascript">
var prvalue =<%=ProcessData%>
// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});
// 使用
require(
[
'echarts',
'echarts/chart/gauge' // 使用柱状图就加载bar模块,按需加载
],
function (ec) {
// 基于准备好的dom,初始化echarts图表
var myChart = ec.init(document.getElementById('divProgress'));
var option = {
tooltip : {
formatter: "{a} <br/>{b} : {c}%"
},
animation: false,
toolbox: {
show : false,
feature : {
mark : {show: true},
restore : {show: true},
saveAsImage : {show: true}
}
},
series : [
{
name:'业务指标',
type:'gauge',
splitNumber: 10, // 分割段数,默认为5
axisLine: { // 坐标轴线
lineStyle: { // 属性lineStyle控制线条样式
color: [[0.2, '#ff4500'], [0.8, '#5BC0DE'], [1, '#228b22']],
width: 8
}
},
axisTick: { // 坐标轴小标记
splitNumber: 10, // 每份split细分多少段
length :12, // 属性length控制线长
lineStyle: { // 属性lineStyle控制线条样式
color: 'auto'
}
},
axisLabel: { // 坐标轴文本标签,详见axis.axisLabel
textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
color: 'auto'
}
},
splitLine: { // 分隔线
show: true, // 默认显示,属性show控制显示与否
length :30, // 属性length控制线长
lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式
color: 'auto'
}
},
pointer : {
width : 5
},
title : { //标题,现在的标题就是 ‘完成率’
show : true,
offsetCenter: [0, '-40%'], // x, y,单位px
textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
fontWeight: 'bolder',
color: '#FFFFFF',
}
},
detail : {
formatter:'{value}%',
textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
color: 'auto',
fontWeight: 'bolder'
}
},
//data: [{ value: document.getElementById("HiddenField1").value, name: '完成率' }]
data: [{ value: prvalue, name: '完成率' }]
}
]
};
// 为echarts对象加载数据
myChart.setOption(option);
}
);
/* clearInterval(timeTicket);
timeTicket = setInterval(function (){
option.series[0].data[0].value = (Math.random()*100).toFixed(2) - 0;
myChart.setOption(option,true);
}, 2000)*/
//这里用setTimeout代替ajax请求进行演示
window.setTimeout(function(){
var data = [{ value: 25, name: '完成率' }];
refreshData(data);
},1000);
function refreshData(data){
if(!myChart){
return;
}
//更新数据
var option = myChart.getOption();
option.series[0].data = data;
myChart.setOption(option);
}
</script>
protected void Timer1_Tick(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(UpdatePanel3, UpdatePanel3.GetType(), "", "require.config();", true);
ScriptManager.RegisterStartupScript(UpdatePanel3, UpdatePanel3.GetType(), "", "require();", true);
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link href="css/MyApp.css" rel="stylesheet" />
</head>
<body>
<div id="SeoData" class="invisible seoStyle">
<ul class="group">
<li class="group-item">
......
</li>
<li class="group-item">
......
</li>
</ul>
<ul class="group">
...............
</ul>
</div>
</div>
<script src="Scripts/jquery-2.1.3.js"></script>
<script src="Scripts/md5.js"></script>
<script src="Scripts/moment.min.js"></script>
<script src="js/ver20150710.js"></script>
<script type="text/javascript">
Main.Start();
</script>
</body>
</html>
这样的代码就足够了。这种页面,只有一个简单的seo列表用来给搜索引擎看(如果根本就是动态页面,那么连这个也省了),然后就是一句调用 javascript 函数的语句就完了。整个UI界面将通过基本的一两个 url 参数或者客户端存储参数,动态地加载其它 js 代码,或者动态地使用 ashx 服务取得 html 模板(富客户端的 UI 组件,例如 knockout,都是在浏览器端去自动解析和处理模板的,用不着你的asp.net)。
从这个编程框架可以看出,富客户端web应用程序,跟 asp.ne t完全不同。如果满脑子是 asp.net 框架时慢慢地去使用前端框架、慢慢地改变asp.net 程序设计的完整头脑,那么你的web开发效率将会很低,特别是 bug 将是非常多的。因此我们招聘时,要么招聘前端 javascript 工程师,要么招聘个别的 asp.net 实习生去维护老程序(不鼓励在其中使用前端框架)。不走中间路线。
var myChart;
// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});
// 使用
require(
[
'echarts',
'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
],
function (ec) {
// 基于准备好的dom,初始化echarts图表
myChart = ec.init(document.getElementById('divProgress'));
var option = {
tooltip: {
show: true
},
legend: {
data: ['销量']
},
xAxis: [
{
type: 'category',
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
"name": "销量",
"type": "bar",
"data": [5, 20, 40, 10, 10, 20]
}
]
};
// 为echarts对象加载数据
myChart.setOption(option);
}
);
//这里用setTimeout代替ajax请求进行演示
window.setTimeout(function(){
var data = [新的数据,自己搞定 ];
refreshData(data);
},3000);
function refreshData(data){
if(!myChart){
return;
}
//更新数据
var option = myChart.getOption();
option.series[0].data = data;
myChart.setOption(option);
}
page1
page2
//设置打印 <script language=javascript> function window.onload() { // -- advanced features factory.printing.SetMarginMeasure(2) // measure margins in inches factory.printing.SetPageRange(false, 1, 3) // need pages from 1 to 3 factory.printing.printer = "HP DeskJet 870C" factory.printing.copies = 2 factory.printing.collate = true factory.printing.paperSize = "A4" factory.printing.paperSource = "Manual feed" // -- basic features factory.printing.header = "居左显示&b居中显示&b居右显示页码,第&p页/共&P页" factory.printing.footer = "(自定义页脚)" factory.printing.portrait = false factory.printing.leftMargin = 0.75 factory.printing.topMargin = 1.5 factory.printing.rightMargin = 0.75 factory.printing.bottomMargin = 1.5 } function Print(frame) { factory.printing.Print(true, frame) // print with prompt }