【求助】.net页面中的自动生成级联图(拓扑图)的功能

问题描述

如图,数据库里有一些表示上下级关系的数据,现在领导有一个需求是直接把这些上下级以拓扑图的形式显示出来(就是在页面自动生成上面的那张图),并且每一个A/B/C这样的图标还能用鼠标点击(用于触发事件如跳转页面等等)。求救呀,这该咋整,愁死了!看了很多其他平台的,感觉都需要安装JRE或者Silverlight等,我这个功能必须裸跑呀!谢谢大家了!

解决方案

解决方案二:
哎,最烦的就是这种。不顾自己的公司的技术力量,想当然。其实可以用js在页面实现排版。你用静态页作出这样的效果就发现规律。
解决方案三:
引用1楼winner2050的回复:

哎,最烦的就是这种。不顾自己的公司的技术力量,想当然。其实可以用js在页面实现排版。你用静态页作出这样的效果就发现规律。

谢谢回复,如果是自己排版的话,方格子好排,但是设备之间的连线该怎么画呢?
解决方案四:
求大牛相助呀,是不是非得用上flex呀
解决方案五:
用DIV,和JS特效来整,就可以,当然很麻烦。。。。
解决方案六:
引用4楼CSMSDN的回复:

用DIV,和JS特效来整,就可以,当然很麻烦。。。。

我晕,居然是用原始方法。那请求大牛再指点一下,js又怎么绘制呢?
解决方案七:
之前有用过TreeGenerator,但是是用于window窗体应用程序web应该也可以用,后来发现了些问题自己也改良了一下
解决方案八:
由于资源还在审核,稍候可以去我的资源下载privateTreeBuildermyTree=null;TreeGenerator.TreeData.TreeDataTableDataTabledtTree=newTreeData.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=newTreeBuilder(dtTree);myTree.FontSize=8;myTree.BoxHeight=40;myTree.BoxWidth=80;myTree.HorizontalSpace=20;myTree.LineWidth=2;HttpContextcurContext=HttpContext.Current;//设置编码和附件格式curContext.Response.ContentType="image/png";curContext.Response.ContentEncoding=Encoding.UTF8;curContext.Response.Charset="";curContext.Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode("myTree.png",Encoding.UTF8));curContext.Response.BinaryWrite(myTree.GenerateTree(-1,-1,"1",System.Drawing.Imaging.ImageFormat.Png));curContext.Response.End();
解决方案九:

解决方案十:
引用8楼liuchaolin的回复:

下载地址

+1
解决方案十一:
引用7楼liuchaolin的回复:

由于资源还在审核,稍候可以去我的资源下载privateTreeBuildermyTree=null;TreeGenerator.TreeData.TreeDataTableDataTabledtTree=newTreeData.TreeDataTableDataTable();dtTree.AddTreeDataTableRow("1001……

我去,太帅了,我要的就是这个又简单又简洁又实用的工具,而且刚想让你发一发自己项目的图片上来,一看你居然直接传上来了,非常感谢
解决方案十二:
有个myflow的纯js的可以做到你的效果
解决方案十三:
引用2楼nffly11的回复:

谢谢回复,如果是自己排版的话,方格子好排,但是设备之间的连线该怎么画呢?

你都排好了方格子,难道不会计算连线的两个端点坐标吗?
解决方案十四:
感谢@liuchaolin大神,你分享的插件可以很好地生拓扑图!但是做出来却没法给领导交差,因为上头要求的是拓扑图上的按钮可以点击,并可以跳转到其他页面显示其他信息,所以很遗憾呀。最后只好老老实实地自己递归并在页面上生成一行行的<div>和button,差不多能显示这样子但是问题来了,首先我不晓得怎么连线,@sp1234大神,请教有什么好方法连线呢,现在实在想不出来!其次是有个难以解决的bug,因为项目是用.NETWebForm做的,几乎没法写脚本,我是用ScriptManager的RegisterStartupScript这样的方法,往html代码上加上<input>标签。而现在只要用鼠标点击这几个小电脑按钮,那些用js脚本添加上的按钮就会消失,如下图:不知道为什么!有没有大神能支个招呢,感激不尽呀!
解决方案十五:
引用11楼sjfe_cn的回复:

有个myflow的纯js的可以做到你的效果

也求请教,在网上找了很久都没有找到这个js插件,能分享一下经验吗,谢谢@sjfe_cn
解决方案:
我做过这个东西,不过可惜是CS版本的
解决方案:
我也做过这个东西
解决方案:
引用8楼liuchaolin的回复:为什么下载的文件是损坏的?
解决方案:
画图请用raphael.js官网:http://raphaeljs.com/
解决方案:
我做过类似的但是数据量大的话就有点卡

时间: 2024-11-01 10:47:13

【求助】.net页面中的自动生成级联图(拓扑图)的功能的相关文章

Word中怎么自动生成目录

  Word中不仅能自己插入目录,还可设置自动生成目录,相信很多的朋友跟我一样不知道吧!没关系,小编这里总结了一些高手介绍的设置技巧,经常写书或者是写论文的朋友,可以熟知一下. Word 优点:用Word根据文章的章节自动生成目录不但快捷,而且阅读查找内容时也很方便,只是按住Ctrl点击目录中的某一章节就会直接跳转到该页,更重要的是便于今后修改,因为写完的文章难免多次修改,增加或删减内容.倘若用手工给目录标页,中间内容一改,后面页码全要改是一件很让人头痛的事情.应该自动生成的目录,你可以任意修改

java中Hibernate自动生成的问题 ?

问题描述 java中Hibernate自动生成的问题 ? 我是刚毕业不久的菜鸟,在公司做项目, 用hibernate 自动生成了与表对应的实体类和 增删改查,都是自动生成的 用的时候只需在业务层调用就行, 然后公司来了个两年经验的同事,说: " 现在都没人用Hibernate自动生成了 ,都是用jdbc 做呢, 还有java的注解", 我现在好困惑啊, Hibernate不是封装了jdbc吗? 怎么现在没人用hibernate了反而用jdbc呢? 还有自动生成不是会提高开发效率吗 ?

怎样在gridview中去掉自动生成字段后绑定数据

问题描述 stringsql="select*fromMusic_tablewhereMusic_singer='"+TextBox6.Text.Trim()+"'andMusic_name='"+TextBox7.Text.Trim()+"'";SqlDataAdaptermydata=newSqlDataAdapter(sql,conn);DataSetmyds=newDataSet();mydata.Fill(myds);GridView2

Android如何实现通过从服务器拿到数据自动生成如图这样的btn列表

问题描述 Android如何实现通过从服务器拿到数据自动生成如图这样的btn列表 解决方案 后台提供http接口,返回json,你收到后,解析成本地数组,然后便利,根据每行按钮数,计算按钮宽度,然后将他们动态的addview到layout

word2013中怎么自动生成目录

  自动生成目录步骤如下: 步骤一:首先在word2013中输入一些文字,这些文字要有栏目有正文,方便你与实际工作中的情况做对比. 步骤二:如上图,我写了3个一级栏目,并且分好了哪是标题哪是正文.现在开始制作word2013的目录.首先要在当前页的前面加一个新的页面,来放目录.我们把光标放在文字的最前面. 步骤三:然后点击工具栏中的[插入],再点击[分页]. 步骤四:现在会在我们的文字前面多出来一个新的分页. 步骤五:接下来点击[视图]中的[大纲视图]. 步骤六:在大纲视图中,可以看到所有的栏目

在Word 2010中取消自动生成超链接

Word 2010具有自动识别网址或电子邮件地址的功能,因此当用户在Word 2010文档中输入以http://或www开头的字符串时, Word 2010会自动将其识别为超链接.如果需要取消自动生成超链接功能,可以按如下步骤操作: 第1步,打开Word 2010文档窗口,依次单击"文件"→"选项"命令,如图2011080801所示. 图2011080801 单 击"选项"命令 第2步,在打开的"Word选项"对话框中,切换到

在Word2010中取消自动生成超链接

Word2010具有自动识别网址或电子邮件地址的功能,因此当用户在Word2010文档中输入以http://或www开头的字符串时,Word2010会自动将其识别为超链接.如果需要取消自动生成超链接功能,可以按如下步骤操作: 第1步,打开Word2010文档窗口,依次单击"文件"→"选项"命令,如图1所示. 图1 单击"选项"命令第2步,在打开的"Word选项"对话框中,切换到"校对"选项卡,并在"

Android中实现自动生成布局View的初始化代码方法_Android

在android开发过程中,界面布局是及其重要的,但同时也是复杂.有的时候我们急于实际运行查看布局效果.但是android的编译速度我实在不想吐槽啥,尤其在布局越来越复杂,项目越来越大,资源文件越来越多的情况下. 尤其是是android的view的初始化,findViewbyId 完全是体力活,我们完全可以根据布局文件自动生成View的初始化代码. 首先声明:   1.这是及其容易做到的,实用性性一般,但是在复杂布局和首次写初始化View代码的时候及其好用. 2.只能生成有id标签的view的初

Android中实现自动生成布局View的初始化代码方法

在android开发过程中,界面布局是及其重要的,但同时也是复杂.有的时候我们急于实际运行查看布局效果.但是android的编译速度我实在不想吐槽啥,尤其在布局越来越复杂,项目越来越大,资源文件越来越多的情况下. 尤其是是android的view的初始化,findViewbyId 完全是体力活,我们完全可以根据布局文件自动生成View的初始化代码. 首先声明:   1.这是及其容易做到的,实用性性一般,但是在复杂布局和首次写初始化View代码的时候及其好用. 2.只能生成有id标签的view的初