网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET图形开发带超链接的饼图

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
nbsp;   这个函数参数是图片URL地址,该地址有主页面的程序提供,首先我们使用GUID类型来创建一个唯一的名称,我们没有直接使用字符串拼凑来生成HTML字符串,而是使用XmlTextWriter来书写HTML字符串。

    首先是输出img标签,然后输出一个map标签。

    由于饼图项目可以带有超链接,这里就能生成map/area元素来在图片中定义热点,在HTML语法中,图片热点没有扇形区域种类,因此只好使用使用多边形来模拟扇形。也就是使用HTML标记”<area shape=poly coords=’多边形的顶点坐标’ />”来模拟扇形热点。

    我们遍历所与的饼图项目,调用GetPoints函数获得模拟这个项目对应的扇形区域的点坐标,将这些点坐标数据填写到area元素的coord属性中,然后还填上title属性来显示提示文本,设置href属性来设置这个图片热点的超链接地址。

    HTML文档输出完毕后我们获得这个XML字符串,去掉前面的XML声明头,然后就把这个XML字符串当作HTML字符串返回给主程序了。

    GetPoints函数就是获得模拟扇形区域的点坐标,首先是根据饼图项目创建一个路径,调用路径的Flatten函数进行线段模拟运算,然后获得它的PathPoints属性,这个属性值是PointF类型的数组,需要转换为Point数组。

主页面 pie.aspx

    这个页面是演示程序的主页面,界面上放置一个名为lblResult的标签,察看它的C#代码也不复杂,主要是Page_Load方法,其代码为

private void Page_Load(object sender, System.EventArgs e)
{
    // 连接数据库
    using( OleDbConnection conn = new OleDbConnection())
    {
        conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
            + this.Server.MapPath("demomdb.mdb");
        conn.Open();
        // 查询数据库
        using( OleDbCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = @"
select top 10
    customers.customerid ,
    customers.companyname as 客户名称,
    ( select sum( round(    orderdetails.unitprice
                        * orderdetails.quantity
                        * ( 1.0 - orderdetails.discount) , 2 ) )
            from orderdetails , orders
            where orderdetails.orderid = orders.orderid
                and orders.customerid = customers.customerid
    ) as 订单总金额
from customers";
            OleDbDataReader reader = cmd.ExecuteReader();
            // 创建饼图对象
            PieShape pie = new PieShape();
            pie.Width = 400 ;
            pie.Height = 300 ;
            System.IO.StringWriter writer = new System.IO.StringWriter();
            while( reader.Read())
            {
                string id = Convert.ToString( reader.GetValue( 0 ));
                double Value = Convert.ToDouble( reader.GetValue( 2 ));
                string Text = "客户名称:" + Convert.ToString( reader.GetValue( 1 ))
                    + "\r\n订单金额:" + Convert.ToString( reader.GetValue( 2 ))
                    + "\r\n点击察看该客户订单的详细情况" ;
                string Link = "pie_orders.aspx?customerid=" + id ;
                pie.Add( Value , Text , Link );
            }//while
            reader.Close();
            pie.RefreshState();
            this.Session["pie_customers"] = pie ;
            this.lblResult.Text = pie.GetHtmlString("pieimage.aspx?name=pie_customers");
            this.DataGrid1.DataSource = pie ;
            this.DataGrid1.DataBind();
        }
    }
}

&

  • 下一篇资讯: DataList对象属性
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号