记得之前做项目的时候客户需要看一个组织结构图,从而了解一下公司的概况,本来自己之前没有做过这方面的控件,只好找度娘,出于对项目的完美,网上很多控件画面感比较渣,后来只能在这些个中挑个比较好的来做,先看图:


第一个:

出自:http://philogb.github.io/jit/demos.html   可以去看看。

第二个:

这个控件的出处我记不清了,至于喜欢哪款,那就仁者见仁智者见智了。


第一款技术实现 看这 :http://philogb.github.io/jit/demos.html

第二款技术实现:http://files.cnblogs.com/files/houlin/Org.zip 源码

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="asp_Demo.aspx.cs" Inherits="OrgCharts_asp_Demo" %>
  2.  
  3. <%@ Register Assembly="BPOrgDiagram" Namespace="BasicPrimitives.OrgDiagram" TagPrefix="cc1" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head runat="server">
  7. <title></title>
  8. <script type="text/javascript" src="../Scripts/jquery-1.9.1.js"></script>
  9. <script type="text/javascript" src="../Scripts/jquery-ui-1.10.2.custom.min.js"></script>
  10. <script type="text/javascript" src="../Scripts/json3.min.js"></script>
  11. <link rel="stylesheet" type="text/css" href="../Scripts/ui-lightness/jquery-ui-1.10.2.custom.min.css" />
  12. <link href="../Scripts/primitives.latest.css" rel="stylesheet" />
  13. <script type="text/javascript" src="../Scripts/primitives.min.js?204"></script>
  14. <style type="text/css">
  15. #Form
  16. {
  17. width: %;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <form id="Form" runat="server">
  23. <asp:ScriptManager ID="ScriptManager" runat="server">
  24. </asp:ScriptManager>
  25. <div style="width: 100%; float: left;">
  26. <cc1:OrgDiagramServerControl ID="orgDiagram" runat="server" BorderColor="White"
  27. BorderStyle="Solid" BorderWidth="1px" Width="100%" Style="margin-right: 0px;
  28. top: 48px; left: 11px; height: 800px;" OnItemCheckChanged="orgDiagram_ItemCheckChanged"
  29. OnSelectedItemChanged="orgDiagram_SelectedItemChanged" Height="700px" MaximumColumnsInMatrix=""
  30. DotItemsInterval="" DotLevelShift="" ChildrenPlacementType="Horizontal" OnTemplateButtonClick="orgDiagram_TemplateButtonClick">
  31. <Buttons>
  32. <cc1:Button Name="展开" />
  33. <%--<cc1:Button Icon="Locked" Name="Locked" />--%>
  34. <cc1:Button Icon="Print" Name="以此为父节点导出EXCEL" />
  35. </Buttons>
  36. </cc1:OrgDiagramServerControl>
  37. </div>
  38. </form>
  39. <script type="text/javascript" src="../Scripts/UserTemplates.js?1029"></script>
  40. </body>
  41. </html>

后台实现:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using BasicPrimitives.OrgDiagram;
  8. using System.Drawing;
  9. using BasicPrimitivesDemo;
  10. using System.Data;
  11. using CAF.DBUtility;
  12. using Microsoft.Office.Interop.Excel;
  13.  
  14. public partial class OrgCharts_asp_Demo : System.Web.UI.Page
  15. {
  16. protected void Page_Load(object sender, EventArgs e)
  17. {
  18. // only bind the data on the first page load...只有绑定第一页上的数据加载…
  19. if (!Page.IsPostBack)
  20. {
  21. GetData();
  22. }
  23. }
  24.  
  25. protected void orgDiagram_SelectedItemChanged(object sender, EventArgs e)
  26. {
  27. Item selectedItem = this.orgDiagram.SelectedItem;
  28. }
  29.  
  30. protected void orgDiagram_ItemCheckChanged(object sender, EventArgs e)
  31. {
  32. Items checkedItems = this.orgDiagram.CheckedItems;
  33. }
  34.  
  35. /// <summary>
  36. /// 点击框边的按钮触发的事件
  37. /// </summary>
  38. /// <param name="sender"></param>
  39. /// <param name="e"></param>
  40. protected void orgDiagram_TemplateButtonClick(object sender, TemplateButtonClickEventArgs e)
  41. {
  42. String buttonName = e.ButtonName;//三按钮的名称
  43.  
  44. Item clickedButtonItem = e.Item;
  45.  
  46. string p_id = clickedButtonItem.Value;
  47.  
  48. if (buttonName == "以此为父节点导出EXCEL")
  49. {
  50. //Excel_Out(p_id);
  51. //SetRangeBackground(4, 2, 6, 4, 003366);
  52. }
  53. else if (buttonName == "展开" && p_id != "")
  54. {
  55. AddOrg(clickedButtonItem, clickedButtonItem.Value);
  56. }
  57. }
  58.  
  59. /// <summary>
  60. /// 获取Data
  61. /// </summary>
  62. private void GetData()
  63. {
  64. this.orgDiagram.Items.Clear();
  1. DataSet ds = CAF.DBUtility.SqlHelper.ExecuteDataSet(" ");//数据源
  1. this.ViewState["ds"] = ds;
  2.  
  3. /* Root */
  4. Item MarkKornegay = new Item("集团", "", "GM Group", "../images/photos/a.png");
  5. MarkKornegay.TemplateName = "UserTemplateContact";
  6. MarkKornegay.TitleColor = Color.CornflowerBlue;
  7. //MarkKornegay.GroupTitle = "Group";
  8. //MarkKornegay.GroupTitleColor = Color.Blue;
  9. MarkKornegay.ShowCheckBox = BasicPrimitives.OrgDiagram.Enabled.False;
  10. MarkKornegay.ShowButtons = BasicPrimitives.OrgDiagram.Enabled.True;
  11.  
  12. this.orgDiagram.Items.Add(MarkKornegay);
  13.  
  14. AddOrg(MarkKornegay, "");
  15. }
  16.  
  17. /// <summary>
  18. /// 追加节点
  19. /// </summary>
  20. /// <param name="P_Org_Item"></param>
  21. /// <param name="int_parent_id"></param>
  22. public void AddOrg(Item P_Org_Item, string int_parent_id)
  23. {
  24. string id = ""; string name = ""; string parent_org_id = ""; string org_type = "";
  25.  
  26. DataSet ds = (DataSet)this.ViewState["ds"];
  27.  
  28. DataRow[] dr = ds.Tables[].Select(" parent_org_id = '" + int_parent_id + "' ");
  29.  
  30. foreach (DataRow dr1 in dr)
  31. {
  32. id = dr1["id"].ToString();
  33.  
  34. name = dr1["name"].ToString();
  35.  
  36. parent_org_id = dr1["parent_org_id"].ToString();
  37.  
  38. org_type = dr1["org_type"].ToString();
  39.  
  40. Item demo_item = new Item(name, id, "test", "../images/photos/a.png");
  41.  
  42. if (id.Length != )
  43. {
  44. demo_item.TemplateName = "UserTemplateContact";
  45. }
  46. demo_item.TitleColor = Color.CornflowerBlue;
  47.  
  48. //demo_item.GroupTitle = "Group";
  49.  
  50. //demo_item.GroupTitleColor = Color.Orange;
  51.  
  52. demo_item.ShowCheckBox = BasicPrimitives.OrgDiagram.Enabled.False;
  53.  
  54. demo_item.ShowButtons = BasicPrimitives.OrgDiagram.Enabled.True;
  55.  
  56. P_Org_Item.Items.Add(demo_item);
  57.  
  58. //AddOrg(demo_item, id);
  59. }
  60. }
  61. }

asp.net 组织结构图控件的更多相关文章

  1. asp.net分页控件

    一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将整理代码如下 二.代码 1.首先在测试页面Default.aspx页面添加引用 <%@ Reg ...

  2. asp.net ajax控件tab扩展,极品啊,秒杀其它插件

    说明:asp.net ajax控件tab要设置width和height,而且在线文本编辑器放能够放入tab中,也必须是asp.net的控件型在线文本,例如fckeditor,下面是我设置好的配置. & ...

  3. javascript获取asp.net服务器端控件的值

    代码如下: <%@ Page Language="C#" CodeFile="A.aspx.cs" Inherits="OrderManage_ ...

  4. ASP.NET控件<ASP:Button /> html控件<input type="button">区别联系

    ASP.NET控件<ASP:Button />-------html控件<input type="button">杨中科是这么说的:asp和input是一样 ...

  5. [ASP.NET]asp.net Repeater控件的使用方法

    asp.net Repeater控件的使用方法 -- : 4770人阅读 评论() 收藏 举报 asp.netserveraspdatasetdeletexhtml 今天学习了,Repeater控件 ...

  6. 关于ASP.net TextBox控件的失去焦点后触发其它事件

    编写人:CC阿爸 2015-2-02 今天在这里,我想与大家一起分享如何处理的ASP.net TextBox控件的失去焦点后触发其它事件的问题,在此做个小结,以供参考.有兴趣的同学,可以一同探讨与学习 ...

  7. 浅谈ASP.NET报表控件

    OWC似乎使用者居多,但看见有网友在帖中抱怨OWC在使用时需要许可证书,于是将其排除,我可不想BOSS在看报表时弹出一个“没有许可证书”的窗口. 接着找到了ComponentOne的Web chart ...

  8. 要后台控制前台的的CSS样式,我们可以加入ASP.NET Literal 控件

    ASP.NET Literal 控件,用于在页面上显示文本.此文本是可编程的. 我用它来制作了 ) { this.LtdMemberPromotion7.Text = "<style ...

  9. ASP.Net 验证控件 RequiredFieldValidator

    使用 ASP.NET 验证控件可在网页上检查用户输入.有用于各种不同类型验证的控件,例如范围检查或模式匹配验证控件.每个验证控件都引用网页上其他位置的输入控件(服务器控件).当处理用户输入时(例如,当 ...

随机推荐

  1. Android Task 与 Back Stack

    Tasks and Back Stack 一个应用通常包括多个 activity.每个 activity应用设计为围绕针对执行用户特定的行为和可以启动其它 activity. 一个 Activity也 ...

  2. innobackupex 备份实验

    [root@localhost ~]# xtrabackup -v xtrabackup version based Linux (x86_64) (revision id: 45cda89) [ro ...

  3. 基于jQuery右侧带缩略图导航的焦点图

    今天我们要来分享一款右侧带缩略图导航的jQuery焦点图插件,这款jQuery焦点图插件的特点是右侧有一列缩略图导航列表,并且可以定义任意数量的图片,你可以拖动列表来查看所有的图片,点击缩略图后,即可 ...

  4. A*算法解决八数码问题 Java语言实现

    0X00 定义 首先要明确一下什么是A*算法和八数码问题? A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法也是一种启发性的算法,也是解决许多搜索问题的有效算法.算法中的距离估 ...

  5. iOS runtime 运行时( - )

    谈到运行时,相对应的就有编译时: 1).运行时-- 直到程序运行时才去确定一个对象的具体信息,并且可以改变这个类的具体信息,包括它的方法,变量等等: 2).编译时-- 是在程序运行之前,编译的时候,就 ...

  6. Souerce 之 图片格式

    一.基本概念 1.矢量图与位图 1)矢量图-完美的几何图形 矢量图是通过组成图形的一些基本元素,如点.线.面,边框,填充色等信息通过计算的方式来显示图形的.就好比我们在几何学里面描述一个圆可以通过它的 ...

  7. JSF HelloWord

    JSF(Java Server Faces)是一种用于构建Web应用程序的新标准Java框架.提供了一种以组件为中心来开发Java Web的用户界面的方法,从而简化了开发.   JSF是Java We ...

  8. Android(java)学习笔记61:多线程程序的引入

  9. vs2010 MFC Opengl实现

    有的人说,学习要按部就班,学了几年的编程稍有点感悟,个人觉得面对技术的不断变化,以及需求的不断变更,如果按部就班的来搞,人生0.5的时间就浪费了,很多时候问自己,why I do need to le ...

  10. iOS UINavigationController 详解

    developer.apple.com/cn/ 导航条   UINavigationBar继承UIView 导航控制器    UINavigationController (压栈,出栈)        ...