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

    工具: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. 理解assign,copy,retain变strong

    举个例子: NSString *houseOfMM = [[NSString alloc] initWithString:'装梵几的三室两厅']; 上面一段代码会执行以下两个动作:  1 在堆上分配一 ...

  2. python 守护进程 daemon

    python 守护进程 daemon # -*-coding:utf-8-*- import sys, os '''将当前进程fork为一个守护进程 注意:如果你的守护进程是由inetd启动的,不要这 ...

  3. SQL——神奇代码1之Update

    说明:一个带有update的循环的代码.很简单,但是在QQ群里问了,应该说是很少有人注意这个问题,也就是很少有人真的理解SQL中的Update. 代码如下: if object_id('tempdb. ...

  4. shell 学习文章列表

    linux shell 逻辑运算符.逻辑表达式详解 linux shell 自定义函数(定义.返回值.变量作用域)介绍 shell export 作用 linux bash shell之declare

  5. paip.调试js 查看元素事件以及事件断点

    paip.调试js  查看元素事件以及事件断点 ff 26 +firebug 查看不出来.. 360 ,虽然也是chrome 基础,但是开发工具烂阿,也是显示不出来.. 作者Attilax  艾龙,  ...

  6. HTML常用命名和CSS reset代码【收集总结】

    CSS命名规则 头:header 内容:content/containe 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:l ...

  7. Anywhere服务建立及连接步骤

    <烟叶自动化收购管理系统(山东版)>服务端程序为<烟站综合管理系统5.0>,5.0使用的数据库为Anywhere,设置方法如下:   建立anywhere服务连接步骤   服务 ...

  8. apache url rewrite 的RewriteRule参数详解

    apache url rewrite 的RewriteRule参数详解 我们经常会在apache那边对一些url进行一些重写操作,那么就会涉及到很多的重写策略的选择,比如重定向的方式,参数的处理,规则 ...

  9. 在 C++Builder 工程里调用 DLL 函数

    调用 Visual C++ DLL 给 C++Builder 程序员提出了一些独特的挑战.在我们试图解决 Visual C++ 生成的 DLL 之前,回顾一下如何调用一个 C++Builder 创建的 ...

  10. 支付宝Wap支付你了解多少?

    上几篇文章详细介绍了支付宝APP支付.微信APP支付 此文章来介绍下支付宝Wap支付(也叫作手机网站支付) 目录 1.创建应用并获取APPID 2.配置应用环境 3.配置沙箱环境 4.服务端实现(Ma ...