radorgchart does not fully render until second execution

3 posts, 0 answers
  1. David
    David avatar
    3 posts
    Member since:
    Apr 2018

    Posted 19 Apr 2018 Link to this post

    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.

  2. David
    David avatar
    3 posts
    Member since:
    Apr 2018

    Posted 19 Apr 2018 in reply to David Link to this post

    Sorry, forgot to include screen shots.
  3. David
    David avatar
    3 posts
    Member since:
    Apr 2018

    Posted 19 Apr 2018 in reply to David Link to this post

    Let's try that one more time!
Back to Top