Once again, i find your documentation and demos so convoluted that I have given up trying to make any sense out it.
I am again trying to accomplish a very simple thing: make a hierarchical grid out of a simple, 2-table relational dataset.
All I wish to do is to create a simple parent-child hierachy in a RadGrid, using an ADO DataSet object containing 2 tables, with a DataRelation already added to the DataSet, which should be enough to establish a parent-child relationship.
Here is dummy code that creates the DataSet:
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
DataSet ds = new DataSet();
DataRow myRow;
dt1.Columns.Add(
"Period");
dt1.Columns.Add(
"Period_Name");
dt2.Columns.Add(
"Period");
dt2.Columns.Add(
"File_Name");
dt2.Columns.Add(
"Size");
myRow = dt1.NewRow();
myRow[
"Period"] = "60";
myRow[
"Period_Name"] = "April 2011";
dt1.Rows.Add(myRow);
myRow = dt1.NewRow();
myRow[
"Period"] = "59";
myRow[
"Period_Name"] = "March 2011";
dt1.Rows.Add(myRow);
myRow = dt1.NewRow();
myRow[
"Period"] = "58";
myRow[
"Period_Name"] = "February 2011";
dt1.Rows.Add(myRow);
myRow = dt1.NewRow();
myRow[
"Period"] = "57";
myRow[
"Period_Name"] = "January 2011";
dt1.Rows.Add(myRow);
myRow = dt2.NewRow();
myRow[
"Period"] = "60";
myRow[
"File_Name"] = "User_60_123456_1.pdf";
myRow[
"Size"] = "923324";
dt2.Rows.Add(myRow);
myRow = dt2.NewRow();
myRow[
"Period"] = "60";
myRow[
"File_Name"] = "User_60_123456_2.pdf";
myRow[
"Size"] = "433324";
dt2.Rows.Add(myRow);
myRow = dt2.NewRow();
myRow[
"Period"] = "60";
myRow[
"File_Name"] = "User_60_123456_3.pdf";
myRow[
"Size"] = "693324";
dt2.Rows.Add(myRow);
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
DataRelation dRel = new DataRelation("Period_to_PDF", ds.Tables[0].Columns["Period"],
ds.Tables[1].Columns[
"Period"]);
ds.Relations.Add(dRel);
<telerik:RadComboBox ID="rcbEntities" runat="server" Width="440px" Height="140px"
ShowToggleImage="False" EmptyMessage="Start Typing..." MinFilterLength="3" EnableLoadOnDemand="true"
ShowMoreResultsBox="True" EnableVirtualScrolling="True" HighlightTemplatedItems="True"
OnClientSelectedIndexChanged="rcbEntities_SelectedIndexChanged"
OnClientItemsRequested="rcbEntities_ClientItemsRequested">
<WebServiceSettings Method="GetEntities" Path="~/TestService.svc" />
</telerik:RadComboBox>
Do you have a detailed example of a simple service that is defined in a separate VS project / IIS site and is being called from a RadComboBox to perform autocomplete ?

RadGrid1_ItemDataBound, RadGrid1_UpdateCommand or any other "events" ), or something like this ... is this possible?
<telerik:RadGrid runat="server" ID="grdOrders" AllowPaging="True" AllowSorting="True" Skin="Web20" onneeddatasource="grdOrders_NeedDataSource" GroupingSettings-CaseSensitive="false" AllowFilteringByColumn="true" > <MasterTableView AutoGenerateColumns="False" > <Columns> <telerik:GridNumericColumn DataField="PlantID" HeaderText="Plant #" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false" SortExpression="PlantID" UniqueName="PlantID" DataType="System.Int32" > </telerik:GridNumericColumn> <telerik:GridBoundColumn DataField="Demand" HeaderText="Demand" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false" SortExpression="Demand" UniqueName="Demand" DataType="System.Int32" > </telerik:GridBoundColumn> <telerik:GridDateTimeColumn DataField="OrderEntryDate" HeaderText="Order Date" CurrentFilterFunction="EqualTo" ShowFilterIcon="false" DataFormatString="{0:MM/dd/yyyy}" PickerType="DatePicker" FilterControlWidth="95px" AutoPostBackOnFilter="true" SortExpression="OrderEntryDate" UniqueName="OrderEntryDate"> </telerik:GridDateTimeColumn> <telerik:GridBoundColumn DataField="CreatedBy" HeaderText="Created By" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false" UniqueName="CreatedBy"> </telerik:GridBoundColumn> </Columns> </MasterTableView> <ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True"> </ClientSettings></telerik:RadGrid><telerik:RadTreeList runat="server" ID="tvwApp" AllowPaging="true" DataKeyNames="AppID" OnItemCommand="RadTreeList1_ItemCommand" AutoGenerateColumns="false" OnPageSizeChanged="RadTreeList1_PageSizeChanged" OnPageIndexChanged="RadTreeList1_PageIndexChanged" ParentDataKeyNames="HistoricalappID" Skin="Windows7" EnableEmbeddedSkins="true" ItemStyle-Height="30px" AlternatingItemStyle-Height="30px" AllowSorting="true" HeaderStyle-Height="30px" AlternatingItemStyle-BackColor="WhiteSmoke" GridLines="Horizontal"> <AlternatingItemStyle BackColor="WhiteSmoke" Height="30px"></AlternatingItemStyle> <ItemStyle Height="30px"></ItemStyle> <Columns> <telerik:TreeListBoundColumn HeaderText="Reference No" DataField="AppRefNo" > <HeaderStyle Width="100px"></HeaderStyle> </telerik:TreeListBoundColumn> <telerik:TreeListBoundColumn HeaderText="Applicant" DataField="LOTRPNo" HeaderStyle-Width="35%" > </telerik:TreeListBoundColumn> <telerik:TreeListBoundColumn HeaderText="UDA" DataField="ULDA"> </telerik:TreeListBoundColumn> <telerik:TreeListBoundColumn SortExpression="DatePropMade" HeaderText="Date Properly Made" DataField="DatePropMade" DataFormatString="{0:d}"> </telerik:TreeListBoundColumn> <telerik:TreeListBoundColumn SortExpression="DateDecision" HeaderText="Decisione Due" DataField="DateDecision" DataFormatString="{0:d}"> </telerik:TreeListBoundColumn> <telerik:TreeListBoundColumn SortExpression="StatusName" HeaderText="Status" DataField="StatusName" UniqueName="StatusName"> </telerik:TreeListBoundColumn> <telerik:TreeListBoundColumn SortExpression="IsPNRequired" HeaderText=" " DataField="IsPNRequired" UniqueName="IsPNRequired" HeaderStyle-Width="0px" ItemStyle-Width="0px" ItemStyle-Font-Size="1px"> <HeaderStyle Width="0px"></HeaderStyle> <ItemStyle Font-Size="1px" Width="0px"></ItemStyle> </telerik:TreeListBoundColumn> <telerik:TreeListTemplateColumn HeaderStyle-Width="60px" HeaderText="Edit"> <ItemTemplate> <telerik:RadButton ID="SelectButton" runat="server" CommandName="Edit" Text="Edit" ItemStyle-CssClass="edit" Width="50px" /> </ItemTemplate> <HeaderStyle Width="60px"></HeaderStyle> </telerik:TreeListTemplateColumn> <telerik:TreeListTemplateColumn HeaderStyle-Width="60px" HeaderText="Copy"> <ItemTemplate> <telerik:RadButton ID="RadButton1" runat="server" CommandName="Copy" Text="Copy" ItemStyle-CssClass="copy" Width="50px" /> </ItemTemplate> <HeaderStyle Width="60px"></HeaderStyle> </telerik:TreeListTemplateColumn> </Columns> <HeaderStyle Height="30px"></HeaderStyle> </telerik:RadTreeList>Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load If Not IsPostBack Then tvwApp.DataSource = LoadData(txtSearch.Text) tvwApp.DataBind() tvwApp.ExpandToLevel(1) txtSearch.Focus() CreateMenu() btnAddNew.Text = "Add New Application" DisplayAppDetailsHeader() End If End Sub Public Sub RadTreeList1_ItemCommand(ByVal sender As Object, ByVal e As TreeListCommandEventArgs) Handles tvwApp.ItemCommand If e.CommandName = RadTreeList.ExpandCollapseCommandName Then tvwApp.DataSource = LoadData(txtSearch.Text) tvwApp.DataBind() End If If (e.Item.ItemType = TreeListItemType.Item Or e.Item.ItemType = TreeListItemType.AlternatingItem) Then Dim item As TreeListDataItem = DirectCast(e.Item, TreeListDataItem) Dim APPID As String = item.OwnerTreeList.DataKeyValues(item.DataItemIndex)("AppID").ToString() If e.CommandName = "Copy" Then Response.Redirect(_apppath + "copy.aspx?ID=" & APPID & "&tabId=tab1&Action=PREAPP") ElseIf e.CommandName = "Edit" Then Response.Redirect(_apppath + "process.aspx?ID=" & APPID & "&tabId=tab1&Action=PREAPP") End If End If End Sub Protected Sub RadTreeList1_PageIndexChanged(ByVal source As Object, ByVal e As Telerik.Web.UI.TreeListPageChangedEventArgs) tvwApp.CurrentPageIndex = e.NewPageIndex tvwApp.DataSource = LoadData(txtSearch.Text) tvwApp.DataBind() End Sub Protected Sub RadTreeList1_PageSizeChanged(ByVal source As Object, ByVal e As Telerik.Web.UI.TreeListPageSizeChangedEventArgs) tvwApp.DataSource = LoadData(txtSearch.Text) tvwApp.DataBind() End SubIndex was out of range. Must be non-negative and less than the size of the collection. Parameter name: index 'error occurs on this line Dim APPID As String = item.OwnerTreeList.DataKeyValues(item.DataItemIndex)("AppID").ToString()