Web功能之组织结构图
前提:由于项目需要显示组织结构图的形式
工具: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 > " + this.SysUserGroupId + "</td></tr>";
str += "<tr bgcolor=white><td > <a href='" + this.NavigateUrl + "' title='详细档案'></a></td></tr>";//" + this.SysUserGroupId + "
str += "<tr><td > " + this.SysUserName + "</td></tr>";
// str += "<tr bgcolor=white><td > </td></tr>";
//str += "<tr><td > </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功能之组织结构图的更多相关文章
- web功能模块测试用例(模板)
web功能模块测试用例(模板): https://wenku.baidu.com/view/4ada3464ddccda38376baff8.html 如图所示:
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- web功能测试之表单、搜索测试
初入职场接触功能测试老是碰到以下情况不知道怎么写测试用例: 一个界面很多搜索条件怎么写用例?下拉框测试如何考虑测试点?上传要考虑哪些验证点?...... 所以这篇主要是整理关于web测试之表单.搜索测 ...
- H3C 模拟器 防火墙开启Web功能
最近在搞运维的一些事情,由于缺少实体的机器来进行操作,先在模拟器里面进行 环境 windows 10,模拟器 HCL_V2.1.1 防火墙 1 在windows添加虚拟网卡 我的电脑--管理--设备管 ...
- 常用的web功能测试方法
功能测试就是对产品各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求功能,即是否满足需求.常用的测试方法如下: 1.页面连接检查:每一个连接是否都有对应的页面,并且页面之间切换正确. ...
- 典藏版Web功能测试用例库
界面显示 初始界面元素:title.内容,默认值.必填项(红*) 样式美观 排版规范 字体统一 编辑页面有光标,定位在第一个可编辑文本框 内容过多时,滚动条 loading ...
- casperjs进行web功能自动化测试demo
通过一周多的学习和总结,终于掌握了casperjs用于自动化的方法,填平了大大小小的各种坑. casperjs是一个新兴的测试框架,网上资料很少,基本上靠翻译英文资料. 贡献出来,供大家参考: / ...
- 利用js日期控件重构WEB功能
开发需求:网页中的日期部门(注册页面和查询条件)都用js日期控件重写 页面一:更新员工页面 empUpdate.jsp 中增加 onfocus 事件 入职日期:<input id="h ...
- node 开发web 登陆功能
node.js基于express框架搭建一个简单的注册登录Web功能 这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 ...
随机推荐
- 作业七:团队项目——Alpha版本冲刺阶段-06
昨天进展:代码编写. 今天安排:代码编写.
- Hash与Map
Hash与Map 面试时经常被问到,什么是Hash?什么是Map? 答:hash采用hash表存储,map一般采用红黑树(RB Tree)实现.因此其memory数据结构是不一样的,而且他们的时间复杂 ...
- IIS7.5 发布程序后cookie丢失问题
给客户部署网站程序时,发现网站的用户登录不了系统,就是跳转不到另外一个页面,一直保留在当前的页面.在本地的VS里面调试的时候是正常的,算在本地的IIS上发布了一下,测试也是这个问题. -------- ...
- atitit. 集合groupby 的实现(2)---自定义linq查询--java .net php
atitit. 集合groupby 的实现(2)---自定义linq查询--java .net php 实现方式有如下 1. Linq的实现原理流程(ati总结) 1 2. groupby 与 事 ...
- CreateJSのeasel.js(一)
CreateJS是基于HTML5开发的一套模块化的库和工具. 基于这些库,可以非常快捷地开发出基于HTML5的游戏.动画和交互应用. CreateJS为CreateJS库,可以说是一款为HTML5游戏 ...
- 详解Bootstrap表单组件
表单常见的元素主要包括:文本输入框.下拉选择框.单选框.复选框.文本域.按钮等.下面是不同的bootstrap版本: LESS: forms.less SASS: _forms.scss boot ...
- HTML5之语义化标签
HTML 5的革新之一:语义化标签一节元素标签. 在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义.(即使我们用css样式的id和class形容这块内容的意义).这些标 ...
- VC2010 调用 Webservice
开发环境:VC2010,gsoap_2.8.23 http://blog.csdn.net/zhaiwenjuan/article/details/6590941 使用soapcpp2的时候要加参数- ...
- nginx 负载均衡集群解决方案 healthcheck_nginx_upstreams (一)
该文章来源于互联网,目前找不到原作者,放在这里的目的是记录healthcheck_nginx_upstreams 的安装过程和相关配置,在起初安装成功后不能够正常运行healthcheck_nginx ...
- SCN试验之一
在数据库运行的时候,数据库系统的SCN不断地增长: SQL> select dbms_flashback.get_system_change_number from dual; GET_SYST ...