前提:由于项目需要显示组织结构图的形式

    工具:VS2010

    项目:ASP.NET 自带的web项目 (带模板页)

    插件:OrgChart(依赖:OrgChart.dll)、JOrgChart

    不多说 先看效果

    1、OrgChart实现效果

    

    2、JOrgChart效果

    

    基础实体类代码:

   public class SysUserModel : OrgNode
{
public int SysUserId { get; set; }
public string SysUserName { get; set; }
public int SysUserParentId { get; set; } public override string OrgNodeHtml()
{
this.SysUserName = this.Text; string str = "<table align='center' border=0 bgcolor='#f0f8ff'><tr>";
//str += "<td><img src='" + this.ImageUrl + "'></td>";
str += "<td><table align=top width=80 border=1 bordercolor=Silver cellspacing=0 style='border-collapse:collapse;'>";
//str += "<tr><td >&nbsp;" + this.SysUserGroupId + "</td></tr>";
str += "<tr bgcolor=white><td >&nbsp;<a href='" + this.NavigateUrl + "' title='详细档案'></a></td></tr>";//" + this.SysUserGroupId + "
str += "<tr><td >&nbsp;" + this.SysUserName + "</td></tr>";
// str += "<tr bgcolor=white><td >&nbsp;</td></tr>";
//str += "<tr><td >&nbsp;</td></tr>"; str += "</table>"; str += "</td></tr></table>"; return str;
}
}

    1、OrgChart前台实现代码: 

<%@ Page Title="OrgChart" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> <%@ Register Assembly="OrgChart" Namespace="OrgCharDesigner" TagPrefix="cc1" %> <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <cc1:OrgChart ID="OrgChart1" runat="server" style="z-index: 101; left: 104px; position: absolute; top: 188px"
LineColor="Silver" Width="80%" Height="80%"
ChartStyle="Vertical" ToolTip="我的组织结构"/> </asp:Content>

        OrgChart后台实现代码:

   SysUserModel sysUserModel = new SysUserModel();
DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ListBind();
}
} protected void ListBind()
{
try
{
dt = dtList();
SysUserModel root = new SysUserModel();
root.SysUserId = ;
root.Text = "CEO";
root.SysUserParentId = ;
SetNodeChild(dt, root);
OrgChart1.Node = root;
}
catch (Exception ex)
{
throw ex;
} } private void SetNodeChild(DataTable dt, SysUserModel root)
{
DataRow[] rows = dt.Select(" SysUserParentId = '" + root.SysUserId + "'");// 选出所有子节点
foreach (DataRow drChild in rows)
{
SysUserModel node = new SysUserModel();
node.Text = drChild["SysUserName"].ToString();
node.SysUserId = int.Parse(drChild["SysUserId"].ToString());
node.SysUserParentId = int.Parse(drChild["SysUserParentId"].ToString());
SetNodeChild(dt, node);
root.Nodes.Add(node);
}
} private DataTable dtList()
{
DataTable dt = new DataTable(); dt.Columns.Add("SysUserId");
dt.Columns.Add("SysUserName");
dt.Columns.Add("SysUserParentId"); dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "CEO";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "总经理";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "副总经理";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "项目一组";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "项目二组";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "运营总经理";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "运营副总经理";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "运营一组";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "运营二组";
dt.Rows[]["SysUserParentId"] = ""; return dt;
}

    2、JOrgChart 前台实现代码:

<%@ Page Title="jOrgChart" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="About.aspx.cs" Inherits="WebApplication1.About" %> <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<link rel="stylesheet" href="Styles/jquery.jOrgChart.css" />
<link rel="stylesheet" href="Styles/custom.css" />
<script type="text/javascript" src="Scripts/prettify.js"></script>
<script type="text/javascript" src="Scripts/jquery.min.js"></script>
<script type="text/javascript" src="Scripts/jquery-ui.min.js"></script>
<script src="Scripts/jquery.jOrgChart.js"></script>
<script>
jQuery(document).ready(function () {
$("#org").jOrgChart({
chartElement: '#chart',
dragAndDrop: true,
drop: function (aim, to) { // $.ajax({
// url: '', //请求的URL
// cache: false, //不从缓存中取数据
// data: { Id: aim.attr("id"), parentId: to.attr("id") }, //发送的参数
// type: 'Get', //请求类型
// dataType: 'json', //返回类型是JSON
// timeout: 20000, //超时
// error: function ()//出错处理
// {
// alert("程序出错!");
// },
// success: function (json)//成功处理
// {
//
// }
// });
alert("目标:" + aim.attr("id") + "被拖动到了:" + to.attr("id"));
}
});
});
</script> <script>
jQuery(document).ready(function () { /* Custom jQuery for the example */
$("#show-list").click(function (e) {
e.preventDefault(); $('#list-html').toggle('fast', function () {
if ($(this).is(':visible')) {
$('#show-list').text('Hide underlying list.');
$(".topbar").fadeTo('fast', 0.9);
} else {
$('#show-list').text('Show underlying list.');
$(".topbar").fadeTo('fast', 1);
}
});
}); $('#list-html').text($('#org').html()); $("#org").bind("DOMSubtreeModified", function () {
$('#list-html').text(''); $('#list-html').text($('#org').html()); prettyPrint();
});
});
</script> </asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<div>
<%=html%>
<div id="chart" class="orgChart">
</div>
</div>
</asp:Content>

         JOrgChart 后台实现代码:

   StringBuilder str = new StringBuilder();
DataTable dt;
protected string html;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
html = ListBind();
}
} protected string ListBind()
{
try
{
dt = dtList();
SysUserModel root = new SysUserModel();
str.Append(" <ul id=\"org\" style=\"display: none\"> <li id ='1'>CEO ");
root.SysUserId = ;
root.Text = "CEO";
root.SysUserParentId = ;
SetNodeChild(dt, root);
str.AppendLine(" </li> </ul> ");
return str.ToString();
}
catch (Exception ex)
{ throw ex;
} } private void SetNodeChild(DataTable dt, SysUserModel root)
{
DataRow[] rows = dt.Select(" SysUserParentId = '" + root.SysUserId + "'");// 选出所有子节点
if (rows.Length > )
{
str.Append(" <ul> ");
foreach (DataRow drChild in rows)
{
str.AppendFormat(" <li id='{0}'>{1}", drChild["SysUserId"].ToString(), drChild["SysUserName"].ToString());
SysUserModel node = new SysUserModel();
node.Text = drChild["SysUserName"].ToString();
node.SysUserId = int.Parse(drChild["SysUserId"].ToString());
node.SysUserParentId = int.Parse(drChild["SysUserParentId"].ToString());
SetNodeChild(dt, node);
str.Append("</li>");
}
str.Append(" </ul>");
}
} private DataTable dtList()
{
DataTable dt = new DataTable(); dt.Columns.Add("SysUserId");
dt.Columns.Add("SysUserName");
dt.Columns.Add("SysUserParentId"); dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "CEO";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "总经理";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "副总经理";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "项目一组";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "项目二组";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "运营总经理";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "运营副总经理";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "运营一组";
dt.Rows[]["SysUserParentId"] = ""; dt.Rows.Add();
dt.Rows[]["SysUserId"] = "";
dt.Rows[]["SysUserName"] = "运营二组";
dt.Rows[]["SysUserParentId"] = ""; return dt;
}

以上是本人对于组织结构图的总结 如有好的建议 请您留下  以便新手学习 利人利自!

项目下载地址:点我要项目

 

Web功能之组织结构图的更多相关文章

  1. web功能模块测试用例(模板)

    web功能模块测试用例(模板): https://wenku.baidu.com/view/4ada3464ddccda38376baff8.html 如图所示:

  2. Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...

  3. web功能测试之表单、搜索测试

    初入职场接触功能测试老是碰到以下情况不知道怎么写测试用例: 一个界面很多搜索条件怎么写用例?下拉框测试如何考虑测试点?上传要考虑哪些验证点?...... 所以这篇主要是整理关于web测试之表单.搜索测 ...

  4. H3C 模拟器 防火墙开启Web功能

    最近在搞运维的一些事情,由于缺少实体的机器来进行操作,先在模拟器里面进行 环境 windows 10,模拟器 HCL_V2.1.1 防火墙 1 在windows添加虚拟网卡 我的电脑--管理--设备管 ...

  5. 常用的web功能测试方法

    功能测试就是对产品各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求功能,即是否满足需求.常用的测试方法如下: 1.页面连接检查:每一个连接是否都有对应的页面,并且页面之间切换正确. ...

  6. 典藏版Web功能测试用例库

    界面显示 ​ 初始界面元素:title.内容,默认值.必填项(红*) ​ 样式美观 ​ 排版规范 ​ 字体统一 ​ 编辑页面有光标,定位在第一个可编辑文本框 ​ 内容过多时,滚动条 ​ loading ...

  7. casperjs进行web功能自动化测试demo

    通过一周多的学习和总结,终于掌握了casperjs用于自动化的方法,填平了大大小小的各种坑. casperjs是一个新兴的测试框架,网上资料很少,基本上靠翻译英文资料. 贡献出来,供大家参考:   / ...

  8. 利用js日期控件重构WEB功能

    开发需求:网页中的日期部门(注册页面和查询条件)都用js日期控件重写 页面一:更新员工页面 empUpdate.jsp 中增加 onfocus 事件 入职日期:<input id="h ...

  9. node 开发web 登陆功能

    node.js基于express框架搭建一个简单的注册登录Web功能 这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 ...

随机推荐

  1. [Python爬虫] Selenium自动访问Firefox和Chrome并实现搜索截图

    前两篇文章介绍了安装,此篇文章算是一个简单的进阶应用吧!它是在Windows下通过Selenium+Python实现自动访问Firefox和Chrome并实现搜索截图的功能.        [Pyth ...

  2. 一个比较常用的关于php下的mysql数据操作类

    <?php /************************************************************* MySql类封装: 首先连接数据库,需要有参数 参数如何 ...

  3. Atitit.信息论原理概论attilax总结

    Atitit.信息论原理概论attilax总结 1. <信息论基础(原书第2版)>((美)科弗(Cover...)[简介_书评_在线阅读] - 当当图书.html1 2. <信息论- ...

  4. PAIP.MYSQL SLEEP 连接太多解决

    PAIP.MYSQL SLEEP 连接太多解决 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.n ...

  5. java利用16进制来辨别png格式的图片

    很多人知道利用.png的字符串结尾可以判断前端传入的图片是否为png格式,但是这只是潜意识的判断!那么如何利用png读写的特殊内容来深意识地判断图片格式呢?最近在做东西的时候遇到了点问题,在加载图片的 ...

  6. Android 开发:view的几种布局方式及实践

    View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍.View的布局显示方式有下面几种:线性布局(Linear Layout).相对布局(Relative Layout).表格布局(Tab ...

  7. hdu 1284完全背包

    http://acm.hdu.edu.cn/showproblem.php?pid=1284 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...

  8. Linux Buffers和Cached的区别(转)

    在linux下使用free命令查看内存使用情况,有buffers和cached两项,以下是它们的区别: buffers是为块设备设计的缓冲.比如磁盘读写,把分散的写操作集中进行,减少磁盘I/O,从而提 ...

  9. 使用Facebook的SDK判斷來訪者是否已經按讃并成為本站粉絲團的成員

    今天公司裡要做活動,其中有一項活動內容是要求來訪者按一下facebook粉絲團的讃,按了讃之後贈送現金.Facebook被墻大家眾所周知,在百度搜了一下發現因為被墻的原因導致國內涉及到Facebook ...

  10. 八卦一下黄晓明和Angelababy的电话号码

    最新一期20150605的<奔跑吧兄弟>真是太搞笑了,邓超被大家整的... 但这一期有个细节引起了我的注意,就是Angelababy在现场打电话给黄晓明,而拨键声音十分清晰.一些拥有“绝对 ...