Click to See Complete Forum and Search --> : Hierachy Grid from Objects


vuyiswam
August 14th, 2010, 02:02 AM
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

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
http://www.telerik.com/ClientsFiles/211914_hierachygridview.JPG

. I am using EAV that means the is no Fixed Column name, so the Binding of the Grid Should be Dynamically.


Thank you

vuyiswam
August 16th, 2010, 04:39 AM
Good Day All

I have a Class that is defined like this


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


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


RadGrid1.DataSource = EAVobj.GetRecords(ParentRecordsRow, ChildRecordsField);
RadGrid1.DataBind();


And I get the Following Data

http://www.telerik.com/ClientsFiles/212012_grid-hierachy.JPG


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

HanneSThEGreaT
August 17th, 2010, 04:19 AM
[ Merged ]