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

    工具: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模拟HTTP Post上传文件

    使用urllib2模块构造http post数据结构,提交有文件的表单(multipart/form-data),本示例提交的post表单带有两个参数及一张图片,代码如下: #buld post bo ...

  2. 写给自己看的Linux运维基础(二) - Apache/MySQL. 安全设置. 定时任务

    本文使用环境为CentOS 6 Apache, PHP, MySQL等常用软件均可通过yum安装包获取 yum install httpd php mysql-server # mysql: 客户端; ...

  3. hasOwnProperty()&&isPrototypeOf()

    1.hasOwnProperty() hasOwnProperty()函数用于指示一个对象自身(不包括原型链)是否具有指定名称的属性.如果有,返回true,否则返回false. 该方法属于Object ...

  4. 理解Certificate、App Id、Identifiers 和 Provisioning Profile

    做真机测试的时候,按照网上的流程,走通了,当时没有注意各种证书等的意思.现在做消息推送,需要各种证书.APP ID信息,为了更好的理解这个过程,所以整理了网上关于证书等的相关资料.方便自己和有需要的朋 ...

  5. 修改Android签名证书keystore的密码、别名alias以及别名密码

    Eclipse ADT的Custom debug keystore自定义调试证书的时候,Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keystore的指 ...

  6. Android 实用工具Hierarchy Viewer实战

    在Android的SDK工具包中,有很多十分有用的工具,可以帮助程序员开发和测试Android应用程序,大大提高其工作效率.其中的一款叫Hierachy Viewer的可视化调试工具,可以很方便地在开 ...

  7. PHP holiday1

    寒假觉得应该学点什么 ,既然决定了就去做吧 放假前就觉得php很好,那就来学一下 ----------------------------------------------------------- ...

  8. 18数据表&E-R模型&概念数据模型-下(选学)-天轰穿大话数据库视频教程

    关键字:数据表 三大范式 外键 主键 数据表设计 天轰穿 sqlserver 数据库大纲:属性与主键,外键&联系,三大范式,设计表时应该考虑的因素 土豆超清地址: 优酷超清地址: 原文地址:h ...

  9. Objective-c中 isEqual ,isEqualToString , == 三者的区别

    首先 OC中的对象都是用指针表示,方法的调用是基于消息机制实现,== 比较的自然是指针指向的地址 然后 说下 isEqual 和 isEqualToString 的区别 IsEqual 是 NSObj ...

  10. ASP.NET Web API模型验证以及异常处理方式

    ASP.NET Web API的模型验证与ASP.NET MVC一样,都使用System.ComponentModel.DataAnnotations. 具体来说,比如有:[Required(Erro ...