当前位置:编程学习 > C#/ASP.NET >>

关于TreeGenerator生成树状拓扑图一些问题


代码
TreeGenerator.TreeData.TreeDataTableDataTable dtTree = new TreeData.TreeDataTableDataTable();

        dtTree.AddTreeDataTableRow("10010", "1", "CET4", "专业成绩");
        dtTree.AddTreeDataTableRow("10020", "1", "CET3", "专业成绩");
        dtTree.AddTreeDataTableRow("30010", "10010", "优", "计算机水平");
        dtTree.AddTreeDataTableRow("30020", "10010", "良", "计算机水平");
        dtTree.AddTreeDataTableRow("30030", "10010", "中", "计算机水平");
        dtTree.AddTreeDataTableRow("30040", "10020", "优", "计算机水平");
        dtTree.AddTreeDataTableRow("30050", "10020", "良", "计算机水平");

        myTree = new TreeBuilder(dtTree);

        myTree.FontSize = 8;
        myTree.BoxHeight = 40;
        myTree.BoxWidth = 80;
        myTree.HorizontalSpace = 20;
        myTree.LineWidth = 2;
        System.Drawing.Image image = System.Drawing.Image.FromStream(myTree.GenerateTree(-1, -1, "1", System.Drawing.Imaging.ImageFormat.Jpeg));
        //定义文件名 
        iname = DateTime.Now.ToString("yyMMddhhmmss ");

        image.Save(Server.MapPath("pic\\") + iname + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);//("pic\\ ") + iname + ".jpg ", ImageFormat.Jpeg);
        //在控件中调用 
        this.Image1.ImageUrl = "~/pic/ " + iname + ".jpg ";
        this.Image1.DataBind();
这是人家之前做的,遇到问题是把生成的拓扑图存在项目的pic文件夹下,绑定到image控件上显示不出来
除了这个TreeGenerator自动生成级联图(拓扑图),还有其他方式可以实现下面这种
       a
b1          b2 a,b1,b2为三个用户呈现网络连接状况,a-b1网络连接是通用绿色直线,a-b2网络连接是不通用红色直线(或者带有打钩(通)打叉(不通)
--------------------编程问答-------------------- image.Save(Server.MapPath("pic\\") + iname + ".jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
这个路径是相对于当前执行文件的路径
this.Image1.ImageUrl = "~/pic/ " + iname + ".jpg ";
这个则相对于web程序根目录的路径,不一定相同啊

上面那个你改成Server.MapPath("/pic")再试试 --------------------编程问答-------------------- 不行,网上找关于二进制图片存储与读取
//将image转换成byte[]
        MemoryStream mstream = new MemoryStream();
        image.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
        byte[] byData = new Byte[mstream.Length];
        mstream.Position = 0;
        mstream.Read(byData, 0, byData.Length);
        mstream.Close();
//然后在网页上输出
        Response.ContentType = "image/jpeg";
        Response.BinaryWrite(byData); --------------------编程问答--------------------
引用 2 楼 su271521387 的回复:
不行,网上找关于二进制图片存储与读取
//将image转换成byte[]
        MemoryStream mstream = new MemoryStream();
        image.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
        byte[] byData = new Byte[mstream.Length];
        mstream.Position = 0;
        mstream.Read(byData, 0, byData.Length);
        mstream.Close();
//然后在网页上输出
        Response.ContentType = "image/jpeg";
        Response.BinaryWrite(byData);


Response.BinaryWrite这是将文件内容写入到了响应流中,通常让客户端点击下载图片用的

this.Image1.ImageUrl = "~/pic/ " + iname + ".jpg "
通常用来在页面上显示图片用
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,