zoukankan      html  css  js  c++  java
  • 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 >&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;
            }
        }
    View Code

        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>
    View Code

            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 = 1;
                    root.Text = "CEO";
                    root.SysUserParentId = 0;
                    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[0]["SysUserId"] = "1";
                dt.Rows[0]["SysUserName"] = "CEO";
                dt.Rows[0]["SysUserParentId"] = "0";
    
                dt.Rows.Add();
                dt.Rows[1]["SysUserId"] = "2";
                dt.Rows[1]["SysUserName"] = "总经理";
                dt.Rows[1]["SysUserParentId"] = "1";
    
                dt.Rows.Add();
                dt.Rows[2]["SysUserId"] = "3";
                dt.Rows[2]["SysUserName"] = "副总经理";
                dt.Rows[2]["SysUserParentId"] = "2";
    
                dt.Rows.Add();
                dt.Rows[3]["SysUserId"] = "4";
                dt.Rows[3]["SysUserName"] = "项目一组";
                dt.Rows[3]["SysUserParentId"] = "3";
    
                dt.Rows.Add();
                dt.Rows[4]["SysUserId"] = "5";
                dt.Rows[4]["SysUserName"] = "项目二组";
                dt.Rows[4]["SysUserParentId"] = "3";
    
                dt.Rows.Add();
                dt.Rows[5]["SysUserId"] = "6";
                dt.Rows[5]["SysUserName"] = "运营总经理";
                dt.Rows[5]["SysUserParentId"] = "1";
    
                dt.Rows.Add();
                dt.Rows[6]["SysUserId"] = "7";
                dt.Rows[6]["SysUserName"] = "运营副总经理";
                dt.Rows[6]["SysUserParentId"] = "6";
    
                dt.Rows.Add();
                dt.Rows[7]["SysUserId"] = "8";
                dt.Rows[7]["SysUserName"] = "运营一组";
                dt.Rows[7]["SysUserParentId"] = "7";
    
                dt.Rows.Add();
                dt.Rows[8]["SysUserId"] = "9";
                dt.Rows[8]["SysUserName"] = "运营二组";
                dt.Rows[8]["SysUserParentId"] = "7";
    
                return dt;
            }
    View Code

        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>
    View Code

             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 = 1;
                    root.Text = "CEO";
                    root.SysUserParentId = 0;
                    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 > 0)
                {
                    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[0]["SysUserId"] = "1";
                dt.Rows[0]["SysUserName"] = "CEO";
                dt.Rows[0]["SysUserParentId"] = "0";
    
                dt.Rows.Add();
                dt.Rows[1]["SysUserId"] = "2";
                dt.Rows[1]["SysUserName"] = "总经理";
                dt.Rows[1]["SysUserParentId"] = "1";
    
                dt.Rows.Add();
                dt.Rows[2]["SysUserId"] = "3";
                dt.Rows[2]["SysUserName"] = "副总经理";
                dt.Rows[2]["SysUserParentId"] = "2";
    
                dt.Rows.Add();
                dt.Rows[3]["SysUserId"] = "4";
                dt.Rows[3]["SysUserName"] = "项目一组";
                dt.Rows[3]["SysUserParentId"] = "3";
    
                dt.Rows.Add();
                dt.Rows[4]["SysUserId"] = "5";
                dt.Rows[4]["SysUserName"] = "项目二组";
                dt.Rows[4]["SysUserParentId"] = "3";
    
                dt.Rows.Add();
                dt.Rows[5]["SysUserId"] = "6";
                dt.Rows[5]["SysUserName"] = "运营总经理";
                dt.Rows[5]["SysUserParentId"] = "1";
    
                dt.Rows.Add();
                dt.Rows[6]["SysUserId"] = "7";
                dt.Rows[6]["SysUserName"] = "运营副总经理";
                dt.Rows[6]["SysUserParentId"] = "6";
    
                dt.Rows.Add();
                dt.Rows[7]["SysUserId"] = "8";
                dt.Rows[7]["SysUserName"] = "运营一组";
                dt.Rows[7]["SysUserParentId"] = "7";
    
                dt.Rows.Add();
                dt.Rows[8]["SysUserId"] = "9";
                dt.Rows[8]["SysUserName"] = "运营二组";
                dt.Rows[8]["SysUserParentId"] = "7";
    
                return dt;
            }
    View Code

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

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

     

  • 相关阅读:
    11个有用的移动网页开发App和HTML5框架
    移动平台前端开发总结(针对iphone,Android等手机)
    uploadify按钮中文乱码问题
    @page指令 validateRequest的作用
    C#,.net获取字符串中指定字符串的个数、所在位置与替换字符串
    lambda函数
    主函数
    Python函数
    猴子
    旋转
  • 原文地址:https://www.cnblogs.com/yhyjy/p/3889858.html
Copyright © 2011-2022 走看看