利用Ajax无全页面提交实现动态画图
新建一个Ajax模板的项目
放置一个ScriptManager,一个updatePanel,一个Timer,在updatePanel中放置一个image。
再新建一个image.aspx页,并建一个方法HT,方法内部实现为:
//建立一个画图层
Bitmap bm = new Bitmap(500, 500);
//取得画图层的Graphics
Graphics g = Graphics.FromImage(bm);
//初始化面板为白色
g.Clear(Color.White);
//建立一个笔刷
Brush b = new SolidBrush(Color.Green);
//画第一个扇形
g.FillPie(b, 10, 10, 400, 400, 0,Convert.ToInt32 (DateTime.Now.Second) *6);
//再建立一个笔刷
Brush b1 = new SolidBrush(Color.Red);
//画第二个扇形
g.FillPie(b1, 10, 10, 400, 400, Convert.ToInt32(DateTime.Now.Second) * 6,360- Convert.ToInt32(DateTime.Now.Second) * 6);
//把图画以jpg格式到画板上
bm.Save(this.Response.OutputStream, ImageFormat.Jpeg);
//注销Griphics
g.Dispose();
//注销面板
bm.Dispose();
最后在Timer1中的确良Tick事件中写入
Image1.ImageUrl = "image.aspx?cs="+DateTime.Now.Second.ToString () ;
大家发现是把一个Image1控件的ImageUrl赋值成一个带参数的页面。首先,image.aspx生成以后是一个图形页面,如果参数不一样,每次都会实现向后台提交。
页面的刷新也可以用 <meta http-equiv="refresh" content="5"/>此时的时间间隔只有通过原代码改,如果换成用Asp.Net Ajax,时间间隔就成为Timer1的一个属性了,可以参数表设置。
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524