This is a migrated thread and some comments may be shown as answers.

[Solved] Telerik Treeview DataBinding

1 Answer 31 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Stephen
Top achievements
Rank 1
Stephen asked on 08 Aug 2011, 03:08 PM

We're having problems data binding multiple tables into a child teir. So say for instance I have 5 tables.

contracts
members
phoneassessments
homeassessments
personalassessments

Each Assessment table has the referencing MemberID and I need to print all three types of assessments in the tiers directly under Members, in other words to look like this.

Contract 1
   
Member 1
       
Home Assessment 1
       
Home Assessment 2
       
Phone Assessment 1
       
Personal Assessment 1
        etc
   
Member 2

The code I have is...

Html.Telerik().TreeView()
   
.Name("TreeName")
   
.BindTo(Model, mappings =>
     
{
       mappings
.For<SMTXEFMVCModel.Contract>(binding => binding
         
.ItemDataBound((item, contract) =>
           
{
             item
.Text = contract.Description;
             item
.SpriteCssClasses = ("icon-contracts");
           
})
           
.Children(Contract => Contract.Members));
       mappings
.For<SMTXEFMVCModel.Member>(binding => binding
         
.ItemDataBound((item, member) =>
           
{
             item
.Text = member.FirstName + " " + member.LastName;
             item
.SpriteCssClasses = ("icon-members");
       
}));
     
})
   
)

We're having difficulty figuring out the correct syntax, and can't find any good examples.

Our best guess is that it look something like:

Html.Telerik().TreeView()
   
.Name("TreeName")
   
.BindTo(Model, mappings =>
     
{
       mappings
.For<SMTXEFMVCModel.Contract>(binding => binding
         
.ItemDataBound((item, contract) =>
           
{
             item
.Text = contract.Description;
             item
.SpriteCssClasses = ("icon-contracts");
           
})
           
.Children(Contract => Contract.Members));
       mappings
.For<SMTXEFMVCModel.Member>(binding => binding
         
.ItemDataBound((item, member) =>
           
{
             item
.Text = member.FirstName + " " + member.LastName;
             item
.SpriteCssClasses = ("icon-members");
           
{)
           
.Children(Members => Members.Assessments));
        mappings
.For<(SMTXEFMVCModel.HomeAssessments,SMTXEFMVCModel.PhoneAssessments,
                     
SMTXEFMVCModel.PersonalAssessments)>(binding => binding
         
.ItemDataBound((item, assessments) =>
           
{
             item
.Text = HomeAssessments.AssessmentID.ToString()
             item
.Text = PhoneAssessments.AssessmentID.ToString()
             item
.Text = PersonalAssessments.AssessmentID.ToString()
       
}));
     
})
   
)
Is this possible?

1 Answer, 1 is accepted

Sort by
0
Atanas Korchev
Telerik team
answered on 08 Aug 2011, 04:22 PM
Hi Stephen,

 The treeview supports only one type of children per level. This means that the following is not supported:

 Member 1
        Home Assessment 1
        Phone Assessment 1
        Personal Assessment 1
You need to have a unified type for the children of the Member class.

 You can check the databinding example of the treeview for a reference.

Regards,
Atanas Korchev
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

Tags
General Discussions
Asked by
Stephen
Top achievements
Rank 1
Answers by
Atanas Korchev
Telerik team
Share this question
or