public void MyDataBind(string style) { string PersonQty = Message.PersonQty; this.HiddenType.Value = style; dt = bllDepartment.GetDepartmentInfo(txtDepCode.Text); dtnew = dt.Copy(); string TotalNum = ""; string Manager = ""; if (dtnew.Rows.Count > 0) { DataRow[] rows = dtnew.Select(" depcode = '" + this.txtDepCode.Text + "'"); foreach (DataRow dr in rows) { TotalNum = ""; dt.Clear(); dt = bllDepartment.GetDepEmpCount(txtDepCode.Text); newdt.Clear(); newdt = dt.Copy(); if ((newdt.Rows.Count > 0) && !Convert.ToString(newdt.Rows[0]["TotalCount"]).Equals("0")) { TotalNum = "<br>" + PersonQty + ":" + Convert.ToString(newdt.Rows[0]["TotalCount"]) + ""; } if (Convert.ToString(dr["Manager"]).Length > 0) { Manager = "<br><font color='red'>" + Convert.ToString(dr["Manager"]) + "</font>"; } else { Manager = ""; } OrgNode tn = new OrgNode { ID = Convert.ToString(dr["depcode"]), Text = Convert.ToString(dr["depname"]) + Manager + TotalNum, Type = "", NavigateUrl = "javascript:NoMessage()", Width = 130 }; int childcount = this.SetNodeChild(dtnew, tn); this.OrgChart1.Node = tn; } } this.OrgChart1.ChartStyle = (style == "1") ? Whidsoft.WebControls.Orientation.Vertical : Whidsoft.WebControls.Orientation.Horizontal; }
public void PageLoadBind() { DataTable table = new DataTable(); table.Columns.Add("depcode", typeof(string)); table.Columns.Add("depname", typeof(string)); table.Columns.Add("parentdepcode", typeof(string)); table.Rows.Add("A01", "總部周邊", ""); table.Rows.Add("A02", "公司員工", "A01"); table.Rows.Add("A03", "部門名稱", "A01"); DataRow[] rows = table.Select(" depcode = 'A01'"); foreach (DataRow dr in rows) { OrgNode tn = new OrgNode { ID = Convert.ToString(dr["depcode"]), Text = Convert.ToString(dr["depname"]), Type = "", NavigateUrl = "javascript:NoMessage()", Width = 130 }; DataRow[] newrows = table.Select(" parentdepcode = 'A01'"); foreach (DataRow newdr in newrows) { OrgNode newtn = new OrgNode { ID = Convert.ToString(newdr["depcode"]), Text = Convert.ToString(newdr["depname"]), Type = "", NavigateUrl = "javascript:NoMessage()", Width = 130 }; tn.Nodes.Add(newtn); } this.OrgChart1.Node = tn; } this.OrgChart1.ChartStyle = ("1" == "1") ? Whidsoft.WebControls.Orientation.Vertical : Whidsoft.WebControls.Orientation.Horizontal; }
/// <summary> /// Determines zero-based index of a OrgNode within the collection. /// </summary> /// <param name="item">The OrgNode to locate within the collection.</param> /// <returns>The zero-based index.</returns> public int IndexOf(OrgNode item) { return List.IndexOf(item); }
/// <summary> /// Determines if a OrgNode is in the collection. /// </summary> /// <param name="item">The OrgNode to search for.</param> /// <returns>true if the OrgNode exists within the collection. false otherwise.</returns> public bool Contains(OrgNode item) { return List.Contains(item); }
/// <summary> /// Adds a OrgNode to the collection at a specific index. /// </summary> /// <param name="index">The index at which to add the item.</param> /// <param name="item">The OrgNode to add.</param> public void AddAt(int index, OrgNode item) { List.Insert(index, item); }
/// <summary> /// Adds a OrgNode to the collection. /// </summary> /// <param name="item">The OrgNode to add.</param> public void Add(OrgNode item) { List.Add(item); }
string NodeHtml(OrgNode xNode) { //调用节点本身的输出,便于用户自定义节点 xNode.ImageFolder = this.ImageFolder; return xNode.OrgNodeHtml(); }
public virtual string OrgNodeAbsoluteHtml(OrgNode node) { string sbTemplate = "<TABLE Width=100 align=center border=0 style=\"LEFT: {5}px; TOP: {6}px; WIDTH: {7}px; HEIGHT: {8}px; POSITION: absolute; \" ><TR><TD align=center style=\"font-size: 12px;font-family: Verdana, Arial;padding : 5px 5px 5px 5px;border:thin solid orange;background-color: lightgrey\" title='{1}'>{3}<a href='{4}'>{0}</a></TD></TR></TABLE>"; return OrgNodeHtml(sbTemplate, node); }
void ChartDataBind(OrgNode ParentNode, Orientation style) { //重新开始画页面 m_Text = ""; try { switch (style) { case Orientation.Horizontal: //水平由左向右 //m_Text = "" ; m_Text += "<table cellspacing=0 cellpadding=0 border=0 Width=100% height=>"; m_Text += "<tr>"; // 第一列 if (ParentNode.Nodes.Count > 0) m_Text += "<td rowspan=" + ParentNode.Nodes.Count + " valign=middle align=Center width=1 class=OrgChartCellPadding>"; else m_Text += "<td valign=middle align=Center width=1 class=OrgChartCellPadding>"; m_Text += NodeHtml(ParentNode); m_Text += "</td>\n"; if (ParentNode.Nodes.Count > 0) { if (ParentNode.Nodes.Count == 1) { m_Text += " <td rowspan=" + ParentNode.Nodes.Count + " align=right width=2>" + Line(41, 1) + "</td>"; m_Text += " <td rowspan=" + ParentNode.Nodes.Count + " align=left width=>\n"; } else { //m_Text += " <td rowspan=" + ParentNode.Nodes.Count + " align=right width=2><img src=../images/OrgChartLine.gif border=0 style=\"height:1px;width:20px;\" /></td>"; m_Text += " <td rowspan=" + ParentNode.Nodes.Count + " align=right width=2>" + Line(20, 1) + "</td>"; m_Text += " <td rowspan=" + ParentNode.Nodes.Count + " align=left width=>\n"; } //将子模块包装 ChildNodes(ParentNode, style); m_Text += " </td>\n"; } m_Text += "</tr>"; m_Text += "</table>"; break; case Orientation.Vertical: //垂直由上至下 //ChartDataBind ( ParentNode ); m_Text += "<table cellspacing=0 cellpadding=0 border=0 Width=100%>"; // 第一行 if (ParentNode.Nodes.Count > 0) m_Text += "<tr><td colspan=" + ParentNode.Nodes.Count + " valign=top align=Center width= class=orgChartCellPadding>"; else m_Text += "<tr><td valign=top align=Center width= class=orgChartCellPadding>"; m_Text += NodeHtml(ParentNode); m_Text += "</td></tr>\n"; if (ParentNode.Nodes.Count > 0) { //m_Text += " <tr><td colspan="+ ParentNode.Nodes.Count +" align=Center><img src=../images/OrgChartLine.gif border=0 style=\"height:20px;width:1px;\" /></td>"; m_Text += " <tr><td colspan=" + ParentNode.Nodes.Count + " align=Center>"; m_Text += Line(1, 20); m_Text += "</td>"; m_Text += "</tr>"; m_Text += "<tr>"; m_Text += "<td>"; ChildNodes(ParentNode, style); m_Text += "</td>"; m_Text += "</tr>"; } m_Text += "</table>"; break; case Orientation.Absolute: //绝对定位不必递归调用 // 第一行 m_Text += NodeHtml(ParentNode); if (ParentNode.Nodes.Count > 0) { m_Text += " <tr><td colspan=" + ParentNode.Nodes.Count + " align=Center>"; m_Text += Line(1, 20); m_Text += "</td>"; m_Text += "</tr>"; m_Text += "<tr>"; m_Text += "<td>"; ChildNodes(ParentNode, style); m_Text += "</td>"; m_Text += "</tr>"; } break; } } catch (Exception ex) { string e = ex.Message; #if DEBUG this.Log(ex.StackTrace); #endif } }
/// <summary> /// /// </summary> /// <param name="ParentNode"></param> void ChartDataBind4(OrgNode ParentNode) { m_Text += "<table cellspacing=0 cellpadding=0 border=0 Width=100%>"; // 第一行 if (ParentNode.Nodes.Count > 0) m_Text += "<tr><td colspan=" + ParentNode.Nodes.Count + " valign=top align=Center width= class=orgChartCellPadding>"; else m_Text += "<tr><td valign=top align=Center width= class=orgChartCellPadding>"; m_Text += NodeHtml(ParentNode); m_Text += "</td></tr>\n"; if (ParentNode.Nodes.Count > 0) { //m_Text += " <tr><td colspan="+ ParentNode.Nodes.Count +" align=Center><img src=../images/OrgChartLine.gif border=0 style=\"height:20px;width:1px;\" /></td>"; m_Text += " <tr><td colspan=" + ParentNode.Nodes.Count + " align=Center>"; m_Text += Line(1, 20); m_Text += "</td>"; m_Text += "</tr>"; ChildNodes4(ParentNode); } m_Text += "</table>"; }
/// <summary> /// 将此控件呈现给指定的输出参数。 /// </summary> /// <param name="output">要写出到的 HTML 编写器 </param> protected override void RenderContents(HtmlTextWriter output) { if (Site != null && Site.DesignMode) { if (_Node == null) { NodeDemo(out _Node); ChartDataBind(_Node, _ChartStyle); _Node = null; } } else { if (_Node == null) { NodeDemo(out _Node); ChartDataBind(_Node, _ChartStyle); _Node = null; } else ChartDataBind(_Node, _ChartStyle); } if (m_Text != null) output.Write(m_Text); }
/// <summary> /// 如果没有数据,输出模拟数据 /// </summary> void NodeDemo(out OrgNode node) { node = new OrgNode(); node.Text = "${Common.OrgChart.NotFound}"; //node.Type = "Root"; //OrgNode d1 = new OrgNode (); //d1.Text = "西城营业厅"; ////d1.Type = "LOGIN"; //node.Nodes.Add ( d1); //OrgNode d2 = new OrgNode (); //d2.Text = "东城营业厅"; ////d2.Type = "ROLES"; //node.Nodes.Add ( d2); }
private int SetNodeChild(DataTable dt, OrgNode NodeParent) { string TotalNum = ""; string Manager = ""; if (dt.Rows.Count > 0) { DataRow[] rows = dt.Select(" parentdepcode = '" + NodeParent.ID.Trim() + "'"); foreach (DataRow dr in rows) { TotalNum = ""; newdt = bllDepartment.GetEmpCountByLevelType(Convert.ToString(dr["depcode"])); if ((this.newdt.Rows.Count > 0) && !Convert.ToString(this.newdt.Rows[0]["TotalCount"]).Equals("0")) { if (!Convert.ToString(this.newdt.Rows[0]["CountA"]).Equals("0")) { TotalNum = "師級:" + Convert.ToString(this.newdt.Rows[0]["CountA"]); } if (!Convert.ToString(this.newdt.Rows[0]["CountB"]).Equals("0")) { if (TotalNum.Length > 0) { TotalNum = TotalNum + ";<br>"; } TotalNum = TotalNum + "員級:" + Convert.ToString(this.newdt.Rows[0]["CountB"]); } if (!Convert.ToString(this.newdt.Rows[0]["CountC"]).Equals("0")) { if (TotalNum.Length > 0) { TotalNum = TotalNum + ";<br>"; } TotalNum = TotalNum + "不銓敘:" + Convert.ToString(this.newdt.Rows[0]["CountC"]); } TotalNum = "<br>人數:" + Convert.ToString(this.newdt.Rows[0]["TotalCount"]) + "<br>(<font color='black'>" + TotalNum + "</font>)"; } if (Convert.ToString(dr["Manager"]).Length > 0) { Manager = "<br><font color='red'>" + Convert.ToString(dr["Manager"]) + "</font>"; } else { Manager = ""; } OrgNode tn = new OrgNode { ID = Convert.ToString(dr["depcode"]), Text = Convert.ToString(dr["depname"]) + Manager + TotalNum, Type = "", NavigateUrl = "javascript:NoMessage()", Width = 130 }; this.SetNodeChild(dt, tn); NodeParent.Nodes.Add(tn); } return rows.Length; } return 0; }
private void MyDataBind(string style) { this.HiddenType.Value = style; dt = bllDepartment.GetDepartmentAInfo(txtDepCode.Text); dtnew = dt.Copy(); string TotalNum = ""; string Manager = ""; if (this.dtnew.Rows.Count > 0) { DataRow[] rows = this.dtnew.Select(" depcode = '" + this.txtDepCode.Text + "'"); foreach (DataRow dr in rows) { TotalNum = ""; dt = bllDepartment.GetEmpCountByLevelType(txtDepCode.Text); newdt=dt.Copy(); if ((this.newdt.Rows.Count > 0) && !Convert.ToString(this.newdt.Rows[0]["TotalCount"]).Equals("0")) { if (!Convert.ToString(this.newdt.Rows[0]["CountA"]).Equals("0")) { TotalNum = "師級:" + Convert.ToString(this.newdt.Rows[0]["CountA"]); } if (!Convert.ToString(this.newdt.Rows[0]["CountB"]).Equals("0")) { if (TotalNum.Length > 0) { TotalNum = TotalNum + ";<br>"; } TotalNum = TotalNum + "員級:" + Convert.ToString(this.newdt.Rows[0]["CountB"]); } if (!Convert.ToString(this.newdt.Rows[0]["CountC"]).Equals("0")) { if (TotalNum.Length > 0) { TotalNum = TotalNum + ";<br>"; } TotalNum = TotalNum + "不銓敘:" + Convert.ToString(this.newdt.Rows[0]["CountC"]); } TotalNum = "<br>人數:" + Convert.ToString(this.newdt.Rows[0]["TotalCount"]) + "<br>(<font color='black'>" + TotalNum + "</font>)"; } if (Convert.ToString(dr["Manager"]).Length > 0) { Manager = "<br><font color='red'>" + Convert.ToString(dr["Manager"]) + "</font>"; } else { Manager = ""; } OrgNode tn = new OrgNode { ID = Convert.ToString(dr["depcode"]), Text = Convert.ToString(dr["depname"]) + Manager + TotalNum, Type = "", NavigateUrl = "javascript:NoMessage()", Width = 130 }; int childcount = this.SetNodeChild(this.dtnew, tn); this.OrgChart1.Node = tn; } } this.OrgChart1.ChartStyle = (style == "1") ? Whidsoft.WebControls.Orientation.Vertical : Whidsoft.WebControls.Orientation.Horizontal; }
/// <summary> /// Removes a OrgNode from the collection. /// </summary> /// <param name="item">The OrgNode to remove.</param> public void Remove(OrgNode item) { List.Remove(item); }
void ChildNodes(OrgNode ParentNode, Orientation style) { if (style == Orientation.Horizontal) { //水平由左向右 m_Text += "<table cellspacing=0 cellpadding=0 border=0 height='100%'>"; for (int i = 0; i < ParentNode.Nodes.Count; i++) { m_Text += "<tr>"; //如果多个子节点,要加分割线;否则,只要一个节点即可 if (ParentNode.Nodes.Count > 1) { if (i == 0) //m_Text += "<td width=1 align=Right vAlign=bottom><img src=../images/OrgChartLine1.gif border=0 style=\"height:100%;width:1px;\" /></td>"; m_Text += "<td width=1 align=Right vAlign=bottom>" + Line1("1", "100%") + "</td>"; else { if (i == (ParentNode.Nodes.Count - 1)) m_Text += "<td width=1 align=Right vAlign=top>" + Line(1, "50%") + "</td>"; // <img src=../images/OrgChartLine.gif border=0 style=\"height:50%;width:1px;\" /> else m_Text += "<td width=1 align=Right vAlign=bottom>" + Line(1, "100%") + "</td>"; } m_Text += "<td align=Left vAlign=middle>" + Line(20, 1) + "</td>"; m_Text += "<td align=Left vAlign=middle>" + NodeHtml(ParentNode.Nodes[i]) + "</td>"; } else { m_Text += "<td align=Left vAlign=middle>" + NodeHtml(ParentNode.Nodes[i]) + "</td>"; } if (ParentNode.Nodes[i].Nodes.Count > 0) { m_Text += "<td align=Left vAlign=middle>"; m_Text += " <table cellspacing=0 cellpadding=0 align=Left border=0>"; m_Text += " <tr>"; m_Text += " <td colspan=0 valign=middle align=Left width=20 class=OrgChartCellPadding>"; //m_Text += "<tr><td colspan="+ ParentNode.Nodes.Count +" align=Center> if (ParentNode.Nodes[i].Nodes.Count == 1) m_Text += Line(41, 1);// "<img src=../images/OrgChartLine.gif border=0 style=\"height:1px;width:41px;\" />"; else m_Text += Line(20, 1); //"<img src=../images/OrgChartLine.gif border=0 style=\"height:1px;width:20px;\" />"; m_Text += " </td>"; m_Text += " <td>"; ChildNodes(ParentNode.Nodes[i], style); m_Text += " </td>"; m_Text += " </tr>"; m_Text += " </table>"; m_Text += "</td>"; } m_Text += "</tr>"; } m_Text += "</table>"; } else { //垂直由上至下 //ChildNodes ( ParentNode ); m_Text += "<table cellspacing=0 cellpadding=0 border=0 Width=100%>"; if (ParentNode.Nodes.Count > 1) { m_Text += "<tr>"; m_Text += "<td height=1 align=Right>" + Line("50%", 1) + "</td>"; // <img src=../images/OrgChartLine.gif border=0 style=\"height:1px;width:50%;\" /> for (int i = 1; i < ParentNode.Nodes.Count - 1; i++) m_Text += "<td height=1 align=Right>" + Line("100%", 1) + "</td>"; m_Text += "<td height=1 align=Left>" + Line("50%", 1) + "</td>"; m_Text += "</tr>"; m_Text += "<tr>"; for (int i = 0; i < ParentNode.Nodes.Count; i++) m_Text += "<td align=Center>" + Line(1, 20) + "</td>"; m_Text += "</tr>"; } // 下属行 m_Text += "<tr>"; for (int i = 0; i < ParentNode.Nodes.Count; i++) { m_Text += "<td valign=top align=center>"; m_Text += NodeHtml(ParentNode.Nodes[i]); if (ParentNode.Nodes[i].Nodes.Count > 0) { m_Text += "<table cellspacing=0 cellpadding=0 align=center>"; m_Text += "<tr>"; m_Text += "<td colspan=0 valign=top align=Center width=100% class=OrgChartCellPadding>"; //m_Text += "<tr><td colspan="+ ParentNode.Nodes.Count +" align=Center> m_Text += Line(1, 20); //"<img src=../images/OrgChartLine.gif border=0 style=\"height:20px;width:1px;\" />"; //m_Text += " </td>"; //m_Text += "</tr>"; ChildNodes(ParentNode.Nodes[i], style); m_Text += "</td>"; m_Text += "</tr>"; m_Text += "</table>"; } m_Text += "</td>"; } m_Text += "</tr>"; m_Text += "</table>"; } }
public virtual string OrgNodeHtml(OrgNode node) { return OrgNodeHtml("", node); }
void ChildNodes4(OrgNode ParentNode) { m_Text += "<table cellspacing=0 cellpadding=0 border=0 Width=100%>"; if (ParentNode.Nodes.Count > 1) { m_Text += "<tr>"; m_Text += "<td height=1 align=Right>" + Line("50%", 1) + "</td>"; // <img src=../images/OrgChartLine.gif border=0 style=\"height:1px;width:50%;\" /> for (int i = 1; i < ParentNode.Nodes.Count - 1; i++) m_Text += "<td height=1 align=Right>" + Line("100%", 1) + "</td>"; m_Text += "<td height=1 align=Left>" + Line("50%", 1) + "</td>"; m_Text += "</tr>"; m_Text += "<tr>"; for (int i = 0; i < ParentNode.Nodes.Count; i++) m_Text += "<td align=Center>" + Line(1, 20) + "</td>"; m_Text += "</tr>"; } // 下属行 m_Text += "<tr>"; for (int i = 0; i < ParentNode.Nodes.Count; i++) { m_Text += "<td valign=top >"; m_Text += NodeHtml(ParentNode.Nodes[i]); if (ParentNode.Nodes[i].Nodes.Count > 0) { m_Text += "<table cellspacing=0 cellpadding=0 align=center>"; m_Text += "<tr>"; m_Text += "<td colspan=0 valign=top align=Center width=100% class=OrgChartCellPadding>"; //m_Text += "<tr><td colspan="+ ParentNode.Nodes.Count +" align=Center> m_Text += Line(1, 20); //"<img src=../images/OrgChartLine.gif border=0 style=\"height:20px;width:1px;\" />"; //m_Text += " </td>"; //m_Text += "</tr>"; ChildNodes4(ParentNode.Nodes[i]); m_Text += "</td>"; m_Text += "</tr>"; m_Text += "</table>"; } m_Text += "</td>"; } m_Text += "</tr>"; m_Text += "</table>"; }
public virtual string OrgNodeHtml(string templateHtml, OrgNode xNode) { string imageUrl; string sbTemplate; if (templateHtml == null || templateHtml == "") { sbTemplate = ""; //sbTemplate = "<TABLE Width=100 align=center border=0><TR><TD align=center class=\"orgchartTable\" title='{1}'>{3}<a href='{4}'>{0}</a></TD></TR></TABLE>"; //sbTemplate = "<TABLE Width=100 align=center border=0><TR><TD align=center style=\"font-size: 12px;font-family: Verdana, Arial;padding : 5px 5px 5px 5px;border:thin solid orange;background-color: lightgrey\" title='{1}'>{3}<a href='{4}'>{0}</a></TD></TR></TABLE>"; } else sbTemplate = templateHtml; StringBuilder sbHtml = new StringBuilder(); string[] nodeData = new string[10]; nodeData[0] = (xNode.Text == null) ? "" : xNode.Text; nodeData[1] = (xNode.Description == null) ? "" : xNode.Description; nodeData[2] = (xNode.Type == null) ? "" : xNode.Type; nodeData[3] = (xNode.ImageUrl == "") ? "" : "<img border=0 src='" + xNode.ImageUrl + "'>"; nodeData[4] = (xNode.NavigateUrl == null) ? "" : xNode.NavigateUrl; nodeData[5] = xNode.X.ToString(); nodeData[6] = xNode.Y.ToString(); nodeData[7] = xNode.Width.ToString(); nodeData[8] = xNode.Height.ToString(); imageUrl = xNode.ImageUrl; if (imageUrl == null || imageUrl == "") { switch (xNode.Type.ToUpper()) { case "ROOT": imageUrl = ImageFolder + "x1root.gif"; break; case "GROUP": imageUrl = ImageFolder + "X1Group.gif"; break; case "ROLES": imageUrl = ImageFolder + "X1Roles.gif"; break; case "LOGIN": imageUrl = ImageFolder + "X1Login.gif"; break; default: imageUrl = ""; break; } } nodeData[3] = (imageUrl == "") ? "" : "<img border=0 src='" + imageUrl + "'>"; sbHtml.AppendFormat(sbTemplate, nodeData); return sbHtml.ToString(); }
public int SetNodeChild(DataTable dt, OrgNode NodeParent) { string PersonQty = Message.PersonQty; string TotalNum = ""; string Manager = ""; if (dt.Rows.Count > 0) { DataRow[] rows = dt.Select(" parentdepcode = '" + NodeParent.ID.Trim() + "'"); foreach (DataRow dr in rows) { TotalNum = ""; DataTable newtable = bllDepartment.GetDepEmpCount(Convert.ToString(dr["depcode"])); if ((newtable.Rows.Count > 0) && !Convert.ToString(newtable.Rows[0]["TotalCount"]).Equals("0")) { TotalNum = "<br>" + PersonQty + ":" + Convert.ToString(newtable.Rows[0]["TotalCount"]); } if (Convert.ToString(dr["Manager"]).Length > 0) { Manager = "<br><font color='red'>" + Convert.ToString(dr["Manager"]) + "</font>"; } else { Manager = ""; } OrgNode tn = new OrgNode { ID = Convert.ToString(dr["depcode"]), Text = Convert.ToString(dr["depname"]) + Manager + TotalNum, Type = "", NavigateUrl = "javascript:NoMessage()", Width = 130 }; this.SetNodeChild(dt, tn); NodeParent.Nodes.Add(tn); } return rows.Length; } return 0; }