I have a page on which a user enters a few search criteria via drop down lists, and then searches for org chart results based on those criteria. I am having a strange issue in which the first time the search button is clicked, the org chart is displayed, but the formatting is wrong, and it's flowing off the screen.
See included screen shots of the first time the search button is clicked, and the second time. Second (and subsequent) search executions all render correctly.
<
telerik:RadOrgChart
RenderMode
=
"Lightweight"
runat
=
"server"
ID
=
"RadOrgChart1"
OnDataBound
=
"radOrgChartDataBound"
Orientation
=
"Vertical"
EnableCollapsing
=
"true"
EnableDrillDown
=
"false"
EnableDragAndDrop
=
"false"
EnableGroupCollapsing
=
"true"
>
<
ItemTemplate
>
<
asp:Label
runat
=
"server"
ID
=
"lblEmployee"
Text='<%# DataBinder.Eval(Container.DataItem, "Employee") %>' />
<
asp:Label
runat
=
"server"
ID
=
"lblAlternate"
Text='<%# DataBinder.Eval(Container.DataItem, "ALternate") %>' />
<
asp:HiddenField
runat
=
"server"
id
=
"hfLead"
Value='<%# DataBinder.Eval(Container.DataItem, "TeamLead") %>' />
<
strong
><%# DataBinder.Eval(Container.DataItem, "Payroll") %></
strong
>
</
ItemTemplate
>
<
GroupEnabledBinding
>
<
NodeBindingSettings
DataFieldID
=
"ID"
DataFieldParentID
=
"ParentID"
/>
<
GroupItemBindingSettings
DataFieldID
=
"ID"
DataFieldNodeID
=
"NodeID"
DataTextField
=
"Employee"
/>
</
GroupEnabledBinding
>
<
RenderedFields
>
<
NodeFields
>
<
telerik:OrgChartRenderedField
DataField
=
"Text"
Label
=
""
/>
</
NodeFields
>
</
RenderedFields
>
</
telerik:RadOrgChart
>
protected void loadOrgChart()
{
try
{
DataTable dtNodes = new DataTable();
DataTable dtItems = new DataTable();
if (cnn.State == ConnectionState.Closed) { cnn.Open(); }
sqlStr = " *** long sql query string here *** ";
SqlCommand cmd = new SqlCommand(sqlStr, cnn);
dtNodes.Load(cmd.ExecuteReader());
cnn.Close();
if (cnn.State == ConnectionState.Closed) { cnn.Open(); }
sqlStr = " *** long sql query string here *** ";
cmd = new SqlCommand(sqlStr, cnn);
dtItems.Load(cmd.ExecuteReader());
cnn.Close();
RadOrgChart1.GroupEnabledBinding.NodeBindingSettings.DataSource
=
dtNodes
;
RadOrgChart1.GroupEnabledBinding.GroupItemBindingSettings.DataSource
=
dtItems
;
RadOrgChart1.GroupColumnCount
= 1;
for (int
i
=
0
; i < dtNodes.Rows.Count; i++)
{
bool
hasParent
=
false
;
string
parentID
=
dtNodes
.Rows[i]["ParentID"].ToString();
for (int
j
=
0
; j < dtNodes.Rows.Count; j++)
{
if (dtNodes.Rows[j]["ID"].ToString() == parentID)
{
hasParent
=
true
;
}
}
if (!hasParent)
{
dtNodes.Rows[i]["ParentID"] = DBNull.Value;
}
}
RadOrgChart1.DataBind();
}
catch (Exception ex)
{
lblError.Text
= ex.ToString();
}
editSection.Visible
=
true
;
upEditarea.Update();
}
protected void radOrgChartDataBound(object sender, EventArgs e)
{
RadOrgChart
orgChart
=
RadOrgChart1
;
foreach (OrgChartNode node in orgChart.GetAllNodes())
{
foreach (OrgChartGroupItem item in node.GroupItems)
{
Label lblEmployee = (Label)item.FindControl("lblEmployee");
Label lblAlternate = (Label)item.FindControl("lblAlternate");
HiddenField hfLead = (HiddenField)item.FindControl("hfLead");
if (lblEmployee.Text == "Vacant Position")
{
lblEmployee.ForeColor
=
System
.Drawing.Color.Red;
}
if (hfLead.Value == "True")
{
lblAlternate.Visible
=
true
;
if (lblAlternate.Text == "No Alternate")
{
lblAlternate.ForeColor
=
System
.Drawing.Color.Red;
}
}
else
{
lblAlternate.Visible
=
false
;
}
}
int
nodeLevel
= node.Level;
if (nodeLevel > 0)
{
node.Collapsed = true;
}
}
}
I'm new to the radorgchart function and using telerik tools in general, so any advice on where I should be looking for the source of this issue is greatly appriciated.