天天看点

利用Ajax无全页面提交实现动态画图

新建一个Ajax模板的项目

<a href="http://www.xy8.cn/upload_file/2007102914141625.JPG" target="_blank"></a>

放置一个ScriptManager,一个updatePanel,一个Timer,在updatePanel中放置一个image。

<a href="http://www.xy8.cn/upload_file/20071029141427899.JPG" target="_blank"></a>

再新建一个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生成以后是一个图形页面,如果参数不一样,每次都会实现向后台提交。

页面的刷新也可以用 &lt;meta http-equiv="refresh" content="5"/&gt;此时的时间间隔只有通过原代码改,如果换成用Asp.Net Ajax,时间间隔就成为Timer1的一个属性了,可以参数表设置。

本文转自桂素伟51CTO博客,原文链接:http://blog.51cto.com/axzxs/150003 ,如需转载请自行联系原作者

继续阅读