Hierachy Grid from Objects

3 posts, 1 answers
  1. Vuyiswa Maseko
    Vuyiswa Maseko avatar
    187 posts
    Member since:
    Jan 2010

    Posted 14 Aug 2010 Link to this post

    Good Day All

    i have Successfully binded the Schedular from Objects and its looking Good and the Following code has done that

    private void BindViewer()
      {
          VS.ViewerService obj = new VS.ViewerService();
          String SessionKey = obj.newSession();
          DateTime Date1 = Convert.ToDateTime("1980-01-01");
          DateTime Date2 = Convert.ToDateTime("2012-12-31");
          VS.extract extract = obj.getObjects(SessionKey, "Butt", Date1, false, Date2, false, "", "");
          try
          {
              RadPanelBar1.Items.Clear();
              RadScheduler1.Appointments.Clear();
              int Len = extract.set.Length;
              for (int i = 0; i < Len; i++)
              {
                  VS.vertex value = extract.set[i];
                  String PanelClass = value.meta;
                  PanelClass = PanelClass.Replace(Remstr, "");
                  PanelClass = PanelClass.Replace(Remstr2, "");
                  Appointment app = null;
                  if (value.atom != null)
                  {
                      RadPanelItem pane = RadPanelBar1.Items.FindItemByText(PanelClass);
                      if (pane == null)
                      {
                          RadPanelItem nwpane = new Telerik.Web.UI.RadPanelItem(PanelClass);
                          RadPanelItem nwpaneSpliter = new Telerik.Web.UI.RadPanelItem(PanelClass);
                          nwpaneSpliter.IsSeparator = true;
                          RadPanelBar1.Items.Add(nwpane);
                          pane = nwpane;
                      }
                      if (value.meta == "za.co.abacus.C_EVENT")
                      {
                          app = new Appointment();
                      }
                      int atomLen = value.atom.Length;
                      for (int j = 0; j < atomLen; j++)
                      {
                          VS.atom atm = value.atom[j];
                          if (atm.meta.Contains("za.co.reactor.A_LABEL"))
                          {
                              RadPanelItem NewItem = new RadPanelItem(atm.content);
                              pane.Items.Add(NewItem);
                              if (app != null)
                              {
                                  app.Subject = atm.content;
                                  app.Description = atm.content;
                                  app.ID = value.key;
                              }
                          }
                          if (app != null && atm.meta.Contains("za.co.abacus.C_EVENT"))
                          {
                              app.ID = atm.content;
                          }
                          if (app != null && atm.meta.Contains("za.co.reactor.A_HORIZON"))
                          {
                              app.Start = Convert.ToDateTime(atm.content);
                          }
                          if (app != null && atm.meta.Contains("za.co.reactor.AA_HORIZON"))
                          {
                              app.End = Convert.ToDateTime(atm.content);
                          }
                          if (app != null && atm.meta.Contains("za.co.reactor.A_TEXT"))
                          {
                              app.Description = atm.content;
                          }
                          if (app != null && atm.meta.Contains("za.co.reactor.A_TEXT"))
                          {
                              app.RecurrenceRule = atm.content;
                          }
                          if (app != null && app.End > app.Start)
                          {
                              RadScheduler1.DataStartField = app.Start.ToString();
                              RadScheduler1.DataSubjectField = app.Subject.ToString();
                              RadScheduler1.DataEndField = app.End.ToString();
                              RadScheduler1.DataKeyField = app.ID.ToString();
                              RadScheduler1.SelectedView = SchedulerViewType.MonthView;
                              RadScheduler1.SelectedDate = app.Start;
                              SlidingZone1.ExpandedPaneId = "RadSlidingPane1";
                         
                          }
                      }
                  }
              }
          }
          catch (ApplicationException ex)
          {
          }
          finally
          {
              obj.closeSession(SessionKey);
          }
      }

    Now with the same results i want  to bind a Hierachy Grid as it Shows in my attached image. I am using EAV that means the is no Fixed Column name, so the Binding of the Grid Should be Dynamically. 


    Thank  you

  2. Answer
    Pavlina
    Admin
    Pavlina avatar
    6084 posts

    Posted 19 Aug 2010 Link to this post

    Hello Vuyiswa,

    To bind each detail table-view, Telerik RadGrid fires the DetailTableDataBind event. The argument carries all needed information such as the table that should be data bound, parent item(s), etc. In the code of the DetailTableDataBind event handler you should write code for constructing detail data-source (list of objects) that will be used by the table to be bound to the hierarchical structure.

    Review the articles below for more information:
    http://demos.telerik.com/aspnet-ajax/grid/examples/programming/detailtabledatabind/defaultcs.aspx
    http://www.telerik.com/help/aspnet-ajax/grdhierarchicaldatabindingusingdetailtabledatabind.html

    Greetings,
    Pavlina
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Vuyiswa Maseko
    Vuyiswa Maseko avatar
    187 posts
    Member since:
    Jan 2010
Back to Top