CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 3 of 3
  1. #1
    Join Date
    Dec 2007
    Location
    South Africa
    Posts
    263

    Hierachy Grid from Objects

    Good Day All

    i have Successfully binded the Telerik Schedular from Objects and its looking Good. Now i have to Bind the same results but in hierachial form. Please note that i am using Telerik Grid and the implementation is the same as asp.net Gridview. i need someone to Guide me to do a hierachy grid from objects , please if you send an example code , add comments so that i can understand the logic

    Code:
    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
    Few companies that installed computers to reduce the employment of clerks have realized their expectations.... They now need more and more expensive clerks even though they call them "Developers" or "Programmers."

  2. #2
    Join Date
    Dec 2007
    Location
    South Africa
    Posts
    263

    How to create Hierachy Grid from Objects

    Good Day All

    I have a Class that is defined like this

    Code:
    namespace EAVV
    {
        public class EAV
        {
    
            private string _Attribute;
            private string _Value;
    
    
    
            public string Attribute
            {
                get
                {
                    return _Attribute;
                }
    
                set
                {
                    _Attribute = value;
                }
    
            }
    
            public string Value
            {
                get
                {
                    return _Value;
                }
                set
                {
                    _Value = value;
                }
    
            }
    
            public EAV(string AttributeEA, string ValueEA)
            {
                this._Attribute = AttributeEA;
                this._Value = ValueEA;
    
            }
    
            public EAV()
            {
    
    
            }
    
        }
    }
    And I have another one to process this like this

    Code:
    namespace EAVV
    {
        public class EAVProcess
        {
    
            public List<EAV> GetRecords(List<string> ParentRecords,List<string> ChildRecords)
            {
              List<EAV> Final= new List<EAV>();
    
              for (int i = 0; i < ParentRecords.Count; i++)
              {
    
                  for (int J = 0; J < ChildRecords.Count; J++)
                  {
                      Final.Add(new EAV(ParentRecords[i], ChildRecords[J]));
                  }
              }
    
              return Final;
            }
    
            public EAVProcess()
            {
            }
        }
    }
    And as you can see this will return a list. So I am binding my Grid(Telerik) which is the same as binding the normal asp.net grid like this

    Code:
           RadGrid1.DataSource = EAVobj.GetRecords(ParentRecordsRow, ChildRecordsField); 
           RadGrid1.DataBind();
    And I get the Following Data




    from the Image, You can see there is an Attribute Column and there is a Value Column, Now what i want to do is that i want to have only one Country and one Event in the Attribute and the Values must be nested underneath each other in a Grid, so basically i need a nested View and the Attribute is the parent and the Values will be grouped according to their parent.

    Thanks
    Few companies that installed computers to reduce the employment of clerks have realized their expectations.... They now need more and more expensive clerks even though they call them "Developers" or "Programmers."

  3. #3
    Join Date
    Jul 2001
    Location
    Sunny South Africa
    Posts
    11,284

    Re: Hierachy Grid from Objects

    [ Merged ]

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured