It looks like what you call dynamicaly is not dynamicaly. Dynamicaly (or Load on demand) would be if you call new binding for each clicked node. To be more precise: OnLoad you add two nodes to TreeView, then when user clicks one of the nodes, you postback and load sub nodes for that node.
My understanding is that you just need hyerarchical data loaded from your 3 tables. Key to what you need to do is as follows:
-Declare a new DataTable in your CodeBehind (dim objTable as new system.Data.DataTable)
Make at least 4 columns - DataFieldID, DataFieldParentID, DataTextField, DataValueField (you can call them differently)
-Now, you can make 3 queries and load data from each table separately or you can make one querie and load data from all tables all in one go.
-For tbl_category items: make sure DataFieldParentID stays Nothing (if you use VB), DataFieldID is CategoryId and DataTextField is CategoryName. (Do not try to find this in documentation, it is not there). The rest for this table is up to you and depends on TreeView functionality.
-For tbl_SubCategory, make sure DataFieldParentID is field CategoryID, DataFieldID is SubCategoryID and DataTextField is SubCategoryName
-tbl_Items - DataFieldParentID is field SubCategoryID, DataFieldID is ItemID and DataTextField is ItemName. Now, you did not show complete tbl_Items (copyrights?), so I am just guesing what is there.
-After finished loading your DataTable in code behind, give it as DataSource to your RatTreeView (RadTreeView1.DataSource=objTable) and bind RadTriView (RadTreeView1.Bind()).
In ASPX file (can be in code behind as well, but easier in ASPX), set the following values to your RadTreeView:
I hope I was clear enough. Just trying to save some time to Telerik people, so they can answer my open questions :)