I just upgraded to the latest release of the AJAX tools and have run into an issue with the Org Chart control, the nodes are not being displayed correctly. Please see attached images for the issues that I am having. Also here is the code that creates the Org Charts for the respective images.
OrgChart align issue.png Code:
OrgChart align issue2.png Code:
OrgChart align issue2.png Markup:
OrgChart align issue.png Code:
private
void
LoadEmployees()
{
Directory_BO.Collections.Employees tmpEmployees =
new
Directory_BLL.OfficeManager().GetOfficeEmployees(OfficeToDisplay.ID);
if
(tmpEmployees.Count > 0)
{
tblNoEmployees.Visible =
false
;
}
else
{
radTabEmployees.Enabled =
false
;
return
;
}
//Set the text of the tab
radTabEmployees.Text =
"Employees ("
+ tmpEmployees.Count +
")"
;
//Get the Distinct Ability Types
var distinctDivisions = tmpEmployees.Cast<Directory_BO.Employee>().GroupBy(c => c.DivisionName).Select(grp => grp.First()).OrderBy(o => o.ContactDivision.Code);
//Create the Tabs and MultiPage pageviews
foreach
(Directory_BO.Employee div
in
distinctDivisions)
{
var tmpDivEmployees = tmpEmployees.Cast<Directory_BO.Employee>().Where(c => c.ContactDivision.ID == div.ContactDivision.ID);
//Add Multipage for the Division
Telerik.Web.UI.RadPageView tmpPageView =
new
Telerik.Web.UI.RadPageView();
tmpPageView.ID =
"radPV"
+ div.ContactDivision.Code;
radMPEmployees.PageViews.Add(tmpPageView);
//Add Tab for the Divison
Telerik.Web.UI.RadTab tmpTab =
new
Telerik.Web.UI.RadTab((div.ContactDivision.Code !=
string
.Empty ? div.ContactDivision.Name :
"Not Listed"
) +
" ("
+ tmpDivEmployees.Count() +
")"
, div.ContactDivision.ID.ToString());
tmpTab.PageViewID = tmpPageView.ID;
radTSEmployees.Tabs.Add(tmpTab);
//Create and load the RadOrgChart
Telerik.Web.UI.RadOrgChart tmpOrgChart =
new
Telerik.Web.UI.RadOrgChart();
tmpOrgChart.ID =
"radOC"
+ div.ContactDivision.Code;
tmpOrgChart.EnableEmbeddedBaseStylesheet =
false
;
tmpOrgChart.EnableEmbeddedSkins =
false
;
tmpOrgChart.Skin =
"IntertekEmployee"
;
tmpOrgChart.GroupColumnCount = 3;
tmpOrgChart.DisableDefaultImage =
true
;
tmpOrgChart.ItemTemplate =
new
EmployeeItemTemplate();
//Table to hold the data for the items
DataTable itemsTable =
new
DataTable();
itemsTable.Columns.Add(
"NodeID"
);
itemsTable.Columns.Add(
"FullNameLink"
);
itemsTable.Columns.Add(
"Title"
);
itemsTable.Columns.Add(
"FullContactInfo"
);
itemsTable.Columns.Add(
"EmployeeID"
);
//Add the details of the employees to the itemTable
foreach
(Directory_BO.Employee tmpC
in
tmpDivEmployees)
itemsTable.Rows.Add(
new
string
[] {
"1"
, tmpC.FullNameLink, tmpC.Title, tmpC.FullContactInfo, tmpC.ID.ToString() });
//Bind the Employee List OrgChart
tmpOrgChart.DataSource = itemsTable;
tmpOrgChart.DataBind();
//Add a top border
Literal tmpLiteral =
new
Literal();
tmpLiteral.Text =
"<div style='border-top:solid 1px #AAAAAA;'></div>"
;
//Add the RadOrgChart to the Mulitpage
radMPEmployees.FindControl(tmpPageView.ID).Controls.Add(tmpLiteral);
radMPEmployees.FindControl(tmpPageView.ID).Controls.Add(tmpOrgChart);
}
}
OrgChart align issue2.png Code:
private
void
LoadOrgChart()
{
Directory_BLL.EmployeeManager ContactMgr =
new
Directory_BLL.EmployeeManager();
//Table to define the nodes
DataTable nodeTable =
new
DataTable();
nodeTable.Columns.Add(
"ID"
);
nodeTable.Columns.Add(
"ManagerID"
);
//Table to hold the data for the items
DataTable itemsTable =
new
DataTable();
itemsTable.Columns.Add(
"NodeID"
);
itemsTable.Columns.Add(
"ID"
);
itemsTable.Columns.Add(
"FullName"
);
itemsTable.Columns.Add(
"Title"
);
itemsTable.Columns.Add(
"CityProvince"
);
itemsTable.Columns.Add(
"ImageURL"
);
//Get Contacts Manager
var tmpCM = ContactMgr.GetEmployeeByID(ContactToDisplay.ManagerID);
if
(tmpCM.ID != 1)
{
//Get Contacts Managers employees
var tmpCME = ContactMgr.GetEmployeesByManagerID(tmpCM.ID);
//Get Contacts Employees
var tmpCE = ContactMgr.GetEmployeesByManagerID(ContactToDisplay.ID);
//Add the nodes to the nodesTable
nodeTable.Rows.Add(
new
string
[] {
"1"
,
null
});
nodeTable.Rows.Add(
new
string
[] {
"2"
,
"1"
});
//Add the details of the employees to the itemTable
itemsTable.Rows.Add(
new
string
[] {
"1"
, tmpCM.ID.ToString(),
"<b>"
+ tmpCM.OrgChartFullNameLink +
"</b>"
, tmpCM.Title, tmpCM.City +
", "
+ tmpCM.Province,
"EmployeePhoto.ashx?img=thumb&id="
+ tmpCM.ID });
foreach
(Directory_BO.Employee tmpC
in
tmpCME)
{
itemsTable.Rows.Add(
new
string
[] {
"2"
, tmpC.ID.ToString(),
"<b>"
+ tmpC.OrgChartFullNameLink +
"</b>"
, tmpC.Title, tmpC.City +
", "
+ tmpC.Province,
"EmployeePhoto.ashx?img=thumb&id="
+ tmpC.ID });
}
if
(tmpCE.Count > 0)
{
nodeTable.Rows.Add(
new
string
[] {
"3"
,
"2"
});
foreach
(Directory_BO.Employee tmpC
in
tmpCE)
{
itemsTable.Rows.Add(
new
string
[] {
"3"
, tmpC.ID.ToString(),
"<b>"
+ tmpC.OrgChartFullNameLink +
"</b>"
, tmpC.Title, tmpC.City +
", "
+ tmpC.Province,
"EmployeePhoto.ashx?img=thumb&id="
+ tmpC.ID });
}
}
//Setup the relationships within the OrgChart
radOrgChart.GroupEnabledBinding.NodeBindingSettings.DataFieldID =
"ID"
;
radOrgChart.GroupEnabledBinding.NodeBindingSettings.DataFieldParentID =
"ManagerID"
;
radOrgChart.GroupEnabledBinding.NodeBindingSettings.DataSource = nodeTable;
radOrgChart.GroupEnabledBinding.GroupItemBindingSettings.DataFieldNodeID =
"NodeID"
;
radOrgChart.GroupEnabledBinding.GroupItemBindingSettings.DataFieldID =
"ID"
;
radOrgChart.GroupEnabledBinding.GroupItemBindingSettings.DataImageUrlField =
"ImageURL"
;
radOrgChart.GroupEnabledBinding.GroupItemBindingSettings.DataSource = itemsTable;
//Bind the OrgChart
radOrgChart.DataBind();
}
else
{
radTabOrgChart.Enabled =
false
;
}
}
<
telerik:RadPageView
ID
=
"radPVOrgChart"
runat
=
"server"
>
<
telerik:RadOrgChart
ID
=
"radOrgChart"
runat
=
"server"
GroupColumnCount
=
"4"
DisableDefaultImage
=
"false"
ClientIDMode
=
"Static"
Skin
=
"Sitefinity"
OnGroupItemDataBound
=
"radOrgChart_GroupItemDataBound"
>
<
RenderedFields
>
<
ItemFields
>
<
telerik:OrgChartRenderedField
DataField
=
"FullName"
/>
<
telerik:OrgChartRenderedField
DataField
=
"Title"
/>
<
telerik:OrgChartRenderedField
DataField
=
"CityProvince"
/>
</
ItemFields
>
</
RenderedFields
>
</
telerik:RadOrgChart
>
</
telerik:RadPageView
>