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

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

这个控件的出处我记不清了,至于喜欢哪款,那就仁者见仁智者见智了。
第一款技术实现 看这 :http://philogb.github.io/jit/demos.html
第二款技术实现:http://files.cnblogs.com/files/houlin/Org.zip 源码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="asp_Demo.aspx.cs" Inherits="OrgCharts_asp_Demo" %> <%@ Register Assembly="BPOrgDiagram" Namespace="BasicPrimitives.OrgDiagram" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="../Scripts/jquery-1.9.1.js"></script>
<script type="text/javascript" src="../Scripts/jquery-ui-1.10.2.custom.min.js"></script>
<script type="text/javascript" src="../Scripts/json3.min.js"></script>
<link rel="stylesheet" type="text/css" href="../Scripts/ui-lightness/jquery-ui-1.10.2.custom.min.css" />
<link href="../Scripts/primitives.latest.css" rel="stylesheet" />
<script type="text/javascript" src="../Scripts/primitives.min.js?204"></script>
<style type="text/css">
#Form
{
width: %;
}
</style>
</head>
<body>
<form id="Form" runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server">
</asp:ScriptManager>
<div style="width: 100%; float: left;">
<cc1:OrgDiagramServerControl ID="orgDiagram" runat="server" BorderColor="White"
BorderStyle="Solid" BorderWidth="1px" Width="100%" Style="margin-right: 0px;
top: 48px; left: 11px; height: 800px;" OnItemCheckChanged="orgDiagram_ItemCheckChanged"
OnSelectedItemChanged="orgDiagram_SelectedItemChanged" Height="700px" MaximumColumnsInMatrix=""
DotItemsInterval="" DotLevelShift="" ChildrenPlacementType="Horizontal" OnTemplateButtonClick="orgDiagram_TemplateButtonClick">
<Buttons>
<cc1:Button Name="展开" />
<%--<cc1:Button Icon="Locked" Name="Locked" />--%>
<cc1:Button Icon="Print" Name="以此为父节点导出EXCEL" />
</Buttons>
</cc1:OrgDiagramServerControl>
</div>
</form>
<script type="text/javascript" src="../Scripts/UserTemplates.js?1029"></script>
</body>
</html>
后台实现:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BasicPrimitives.OrgDiagram;
using System.Drawing;
using BasicPrimitivesDemo;
using System.Data;
using CAF.DBUtility;
using Microsoft.Office.Interop.Excel; public partial class OrgCharts_asp_Demo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// only bind the data on the first page load...只有绑定第一页上的数据加载…
if (!Page.IsPostBack)
{
GetData();
}
} protected void orgDiagram_SelectedItemChanged(object sender, EventArgs e)
{
Item selectedItem = this.orgDiagram.SelectedItem;
} protected void orgDiagram_ItemCheckChanged(object sender, EventArgs e)
{
Items checkedItems = this.orgDiagram.CheckedItems;
} /// <summary>
/// 点击框边的按钮触发的事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void orgDiagram_TemplateButtonClick(object sender, TemplateButtonClickEventArgs e)
{
String buttonName = e.ButtonName;//三按钮的名称 Item clickedButtonItem = e.Item; string p_id = clickedButtonItem.Value; if (buttonName == "以此为父节点导出EXCEL")
{
//Excel_Out(p_id);
//SetRangeBackground(4, 2, 6, 4, 003366);
}
else if (buttonName == "展开" && p_id != "")
{
AddOrg(clickedButtonItem, clickedButtonItem.Value);
}
} /// <summary>
/// 获取Data
/// </summary>
private void GetData()
{
this.orgDiagram.Items.Clear();
DataSet ds = CAF.DBUtility.SqlHelper.ExecuteDataSet(" ");//数据源
this.ViewState["ds"] = ds;
/* Root */
Item MarkKornegay = new Item("集团", "", "GM Group", "../images/photos/a.png");
MarkKornegay.TemplateName = "UserTemplateContact";
MarkKornegay.TitleColor = Color.CornflowerBlue;
//MarkKornegay.GroupTitle = "Group";
//MarkKornegay.GroupTitleColor = Color.Blue;
MarkKornegay.ShowCheckBox = BasicPrimitives.OrgDiagram.Enabled.False;
MarkKornegay.ShowButtons = BasicPrimitives.OrgDiagram.Enabled.True;
this.orgDiagram.Items.Add(MarkKornegay);
AddOrg(MarkKornegay, "");
}
/// <summary>
/// 追加节点
/// </summary>
/// <param name="P_Org_Item"></param>
/// <param name="int_parent_id"></param>
public void AddOrg(Item P_Org_Item, string int_parent_id)
{
string id = ""; string name = ""; string parent_org_id = ""; string org_type = "";
DataSet ds = (DataSet)this.ViewState["ds"];
DataRow[] dr = ds.Tables[].Select(" parent_org_id = '" + int_parent_id + "' ");
foreach (DataRow dr1 in dr)
{
id = dr1["id"].ToString();
name = dr1["name"].ToString();
parent_org_id = dr1["parent_org_id"].ToString();
org_type = dr1["org_type"].ToString();
Item demo_item = new Item(name, id, "test", "../images/photos/a.png");
if (id.Length != )
{
demo_item.TemplateName = "UserTemplateContact";
}
demo_item.TitleColor = Color.CornflowerBlue;
//demo_item.GroupTitle = "Group";
//demo_item.GroupTitleColor = Color.Orange;
demo_item.ShowCheckBox = BasicPrimitives.OrgDiagram.Enabled.False;
demo_item.ShowButtons = BasicPrimitives.OrgDiagram.Enabled.True;
P_Org_Item.Items.Add(demo_item);
//AddOrg(demo_item, id);
}
}
}
asp.net 组织结构图控件的更多相关文章
- asp.net分页控件
一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将整理代码如下 二.代码 1.首先在测试页面Default.aspx页面添加引用 <%@ Reg ...
- asp.net ajax控件tab扩展,极品啊,秒杀其它插件
说明:asp.net ajax控件tab要设置width和height,而且在线文本编辑器放能够放入tab中,也必须是asp.net的控件型在线文本,例如fckeditor,下面是我设置好的配置. & ...
- javascript获取asp.net服务器端控件的值
代码如下: <%@ Page Language="C#" CodeFile="A.aspx.cs" Inherits="OrderManage_ ...
- ASP.NET控件<ASP:Button /> html控件<input type="button">区别联系
ASP.NET控件<ASP:Button />-------html控件<input type="button">杨中科是这么说的:asp和input是一样 ...
- [ASP.NET]asp.net Repeater控件的使用方法
asp.net Repeater控件的使用方法 -- : 4770人阅读 评论() 收藏 举报 asp.netserveraspdatasetdeletexhtml 今天学习了,Repeater控件 ...
- 关于ASP.net TextBox控件的失去焦点后触发其它事件
编写人:CC阿爸 2015-2-02 今天在这里,我想与大家一起分享如何处理的ASP.net TextBox控件的失去焦点后触发其它事件的问题,在此做个小结,以供参考.有兴趣的同学,可以一同探讨与学习 ...
- 浅谈ASP.NET报表控件
OWC似乎使用者居多,但看见有网友在帖中抱怨OWC在使用时需要许可证书,于是将其排除,我可不想BOSS在看报表时弹出一个“没有许可证书”的窗口. 接着找到了ComponentOne的Web chart ...
- 要后台控制前台的的CSS样式,我们可以加入ASP.NET Literal 控件
ASP.NET Literal 控件,用于在页面上显示文本.此文本是可编程的. 我用它来制作了 ) { this.LtdMemberPromotion7.Text = "<style ...
- ASP.Net 验证控件 RequiredFieldValidator
使用 ASP.NET 验证控件可在网页上检查用户输入.有用于各种不同类型验证的控件,例如范围检查或模式匹配验证控件.每个验证控件都引用网页上其他位置的输入控件(服务器控件).当处理用户输入时(例如,当 ...
随机推荐
- C#基本线程同步
0 概述 所谓同步,就是给多个线程规定一个执行的顺序(或称为时序),要求某个线程先执行完一段代码后,另一个线程才能开始执行. 第一种情况:多个线程访问同一个变量: 1. 一个线程写,其它线程读:这种情 ...
- valgrind 内存检测与调用图生成
http://blog.csdn.net/destina/article/details/6198443 感谢作者的分享! 一 valgrind是什么? Valgrind是一套Linux下,开放源 ...
- Windows内存管理和linux内存管理
windows内存管理 windows 内存管理方式主要分为:页式管理,段式管理,段页式管理. 页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页:页式管理把内存空间按照页的大小划分成片或 ...
- 想了解JAVA的,看看(转载)
较新一篇 / 较旧一篇 编辑 |删除 | 复制链接 公开 想了解JAVA的,看看(转载)2009-03-01 15:41 (分类:默认分类) 先总结一下: J2SE (Core/Desktop) ...
- iOS本机生成证书请求文件流程
第一步:苹果机上打开“Finder”,选择“应用程序”,双击打开“实用工具” 第二步:在“实用工具”中,选“择钥匙串访问”,双击打开 第三步: “钥匙串访问”打开,看到如下页面 第四步:选择菜单中“钥 ...
- Flume-ng-1.4.0 spooling source的方式增加了对目录的递归检测的支持
因为flume的spooldir不支持子目录文件的递归检测,并且业务需要,所以修改了源码,重新编译 代码修改参考自:http://blog.csdn.net/yangbutao/article/det ...
- iOS7开发中的新特性
iOS7到现在已经发布了有一段时间了.相信你现在已经了解了它那些开创性的视觉设计,已经了解了它的新的API,比如说SpirteKit,UIKit Dynamics以及TextKit,作为开发者 ...
- 如何设计App登录模块?
1.熟悉目前常见的手机APP登陆方式 ① 账号登陆(手机.邮箱) ② 第三方登陆(微信,QQ,微博) ③ 一键快捷登录(工具类,如不记单词) ④ 游客登陆(bbs) ⑤ demo测试登陆(如友盟等) ...
- SQL数据缓存依赖 [SqlServer | Cache | SqlCacheDependency ]
前言 本文主要是对<ASP.NET 2.0开发指南>——<数据缓存>章节内容的提取并略有补充. 参考资料 1. <ASP.NET 2.0开发指南> 2. ...
- sort() 方法用于对数组的元素进行排序
语法 arrayObject.sort(sortby) 参数 描述 sortby 可选.规定排序顺序.必须是函数. 返回值 对数组的引用.请注意,数组在原数组上进行排序,不生成副本. 说明 如果调用该 ...