Good day there, I have recently started using Telerik Radcontrols and I must say they are awesome. Since I am still new at this, I have been experiencing a problem loading data in Hierarchy mode "old master detail" style in my grid. I have done reading and research but can't seem to get it right. Could you please assist me :)
Here are the details. I would like to load a grid, displaying companies, and on the following hierarchy, customers that belong to this company. I have a customer table, a company table, and a customer_company table that links the two with a companyid and a customer id.
Here is my aspx.
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Company.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<br /><br /><br /><br /><br /><br />
<telerik:RadGrid ID="RadGrid1" runat="server" GridLines="None" AllowCustomPaging="True" AllowPaging="True" OnItemCommand="RadGrid1_ItemCommand" Skin="WebBlue">
<HeaderContextMenu EnableTheming="True">
<CollapseAnimation Duration="200" Type="OutQuint" />
</HeaderContextMenu>
<ClientSettings AllowExpandCollapse="True">
</ClientSettings>
<MasterTableView AllowMultiColumnSorting="True" HierarchyLoadMode="client" HierarchyDefaultExpanded="true" DataSourceID="SqlDataSource1" CommandItemDisplay="Top" AllowFilteringByColumn="True" AutoGenerateColumns="False" DataKeyNames="com_cde" AllowSorting="True">
<RowIndicatorColumn>
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px" />
</ExpandCollapseColumn>
<DetailTables>
<telerik:GridTableView DataKeyNames="com_cde" DataSourceID="SqlDataSource1" Width="100%" runat="server">
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="com_cde" MasterKeyField="com_cde" />
</ParentTableRelation>
<DetailTables>
<telerik:GridTableView DataKeyNames="cnt_prs_cde" DataSourceID="SqlDataSource3" Width="100%" runat="server">
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="cnt_prs_cde" MasterKeyField="cnt_prs_cde" />
</ParentTableRelation>
<Columns>
<telerik:GridEditCommandColumn></telerik:GridEditCommandColumn>
<telerik:GridClientDeleteColumn ConfirmText="Are you sure you wish to delete this contact person?" ConfirmTitle="Delete contact person" Text="Delete" UniqueName="column"></telerik:GridClientDeleteColumn>
<telerik:GridBoundColumn DataField="cnt_prs_cde" DataType="System.Int32" HeaderText="Code"
ReadOnly="True" SortExpression="cnt_prs_cde" UniqueName="cnt_prs_cde">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_prs_nme" HeaderText="Name" SortExpression="cnt_prs_nme"
UniqueName="cnt_prs_nme">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_prs_sur_nme" HeaderText="Surname"
SortExpression="cnt_prs_sur_nme" UniqueName="cnt_prs_sur_nme">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_prs_cel_nbr" HeaderText="Cell number"
SortExpression="cnt_prs_cel_nbr" UniqueName="cnt_prs_cel_nbr">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_prs_fax_nbr" HeaderText="Fax number"
SortExpression="cnt_prs_fax_nbr" UniqueName="cnt_prs_fax_nbr">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_prs_eml_adr_wrk" HeaderText="Work email"
SortExpression="cnt_prs_eml_adr_wrk" UniqueName="cnt_prs_eml_adr_wrk">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_prs_eml_adr_alt" HeaderText="Alternatative email"
SortExpression="cnt_prs_eml_adr_alt" UniqueName="cnt_prs_eml_adr_alt">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="cnt_prs_wrk_nbr" HeaderText="Work number"
SortExpression="cnt_prs_wrk_nbr" UniqueName="cnt_prs_wrk_nbr">
</telerik:GridBoundColumn>
<telerik:GridCheckBoxColumn DataField="acv_ind" DataType="System.Boolean" HeaderText="Active"
SortExpression="acv_ind" UniqueName="acv_ind">
</telerik:GridCheckBoxColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridEditCommandColumn></telerik:GridEditCommandColumn>
<telerik:GridClientDeleteColumn ConfirmText="Are you sure you wish to delete this company?" ConfirmTitle="Delete company" Text="Delete" UniqueName="column"></telerik:GridClientDeleteColumn>
<telerik:GridBoundColumn DataField="com_cde" DataType="System.Int32" HeaderText="Code"
ReadOnly="True" SortExpression="com_cde" UniqueName="com_cde">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="com_nme" HeaderText="Name" SortExpression="com_nme"
UniqueName="com_nme">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="com_reg_nbr" HeaderText="Registration no" SortExpression="com_reg_nbr"
UniqueName="com_reg_nbr">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="com_inc_dte" DataType="System.DateTime" HeaderText="Incorporation date"
SortExpression="com_inc_dte" UniqueName="com_inc_dte">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="com_inc_tax_nbr" HeaderText="Incorporation tax no"
SortExpression="com_inc_tax_nbr" UniqueName="com_inc_tax_nbr">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="com_vat_nbr" HeaderText="Vat no" SortExpression="com_vat_nbr"
UniqueName="com_vat_nbr">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="com_paye_nbr" HeaderText="Paye nr" SortExpression="Paye nr"
UniqueName="com_paye_nbr">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="acv_ind" DataType="System.Int32" HeaderText="Active"
SortExpression="acv_ind" UniqueName="acv_ind">
</telerik:GridBoundColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<EditFormSettings>
<EditColumn UniqueName="EditCommandColumn1">
</EditColumn>
</EditFormSettings>
</MasterTableView>
<FilterMenu EnableTheming="True">
<CollapseAnimation Duration="200" Type="OutQuint" />
</FilterMenu>
<AlternatingItemStyle BackColor="White" VerticalAlign="Middle" />
</telerik:RadGrid><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:AccbizConnectionString %>"
DeleteCommand="spAccbiz_company_delete" DeleteCommandType="StoredProcedure" InsertCommand="spAccbiz_company_insert"
InsertCommandType="StoredProcedure" SelectCommand="spAccbiz_get_company" SelectCommandType="StoredProcedure"
UpdateCommand="spAccbiz_company_update" UpdateCommandType="StoredProcedure">
<DeleteParameters>
<asp:Parameter Name="com_cde" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="com_cde" Type="Int32" />
<asp:Parameter Name="com_nme" Type="String" />
<asp:Parameter Name="com_reg_nbr" Type="String" />
<asp:Parameter Name="com_inc_dte" Type="DateTime" />
<asp:Parameter Name="com_inc_tax_nbr" Type="String" />
<asp:Parameter Name="com_vat_nbr" Type="String" />
<asp:Parameter Name="com_paye_nbr" Type="String" />
<asp:Parameter Name="com_typ_cde" Type="Int32" />
<asp:Parameter Name="acv_ind" Type="Boolean" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="com_nme" Type="String" />
<asp:Parameter Name="com_reg_nbr" Type="String" />
<asp:Parameter Name="com_inc_dte" Type="DateTime" />
<asp:Parameter Name="com_inc_tax_nbr" Type="String" />
<asp:Parameter Name="com_vat_nbr" Type="String" />
<asp:Parameter Name="com_paye_nbr" Type="String" />
<asp:Parameter Name="com_typ_cde" Type="Int32" />
<asp:Parameter Name="acv_ind" Type="Boolean" />
</InsertParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:AccbizConnectionString%>"
DeleteCommand="spAccbiz_contact_person_delete" DeleteCommandType="StoredProcedure"
InsertCommand="spAccbiz_contact_person_insert" InsertCommandType="StoredProcedure"
SelectCommand="spAccbiz_contact_person_exists" SelectCommandType="StoredProcedure"
UpdateCommand="spAccbiz_contact_person_update" UpdateCommandType="StoredProcedure">
<DeleteParameters>
<asp:Parameter Name="cnt_prs_cde" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="cnt_prs_cde" Type="Int32" />
<asp:Parameter Name="cnt_prs_nme" Type="String" />
<asp:Parameter Name="cnt_prs_sur_nme" Type="String" />
<asp:Parameter Name="cnt_prs_cel_nbr" Type="String" />
<asp:Parameter Name="cnt_prs_fax_nbr" Type="String" />
<asp:Parameter Name="cnt_prs_eml_adr_wrk" Type="String" />
<asp:Parameter Name="cnt_prs_eml_adr_alt" Type="String" />
<asp:Parameter Name="cnt_prs_wrk_nbr" Type="String" />
<asp:Parameter Name="acv_ind" Type="Boolean" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="cnt_prs_cde" Type="Int32" />
<asp:Parameter Name="cnt_prs_nme" Type="String" />
<asp:Parameter Name="cnt_prs_sur_nme" Type="String" />
<asp:Parameter Name="cnt_prs_cel_nbr" Type="String" />
<asp:Parameter Name="cnt_prs_fax_nbr" Type="String" />
<asp:Parameter Name="cnt_prs_eml_adr_wrk" Type="String" />
<asp:Parameter Name="cnt_prs_eml_adr_alt" Type="String" />
<asp:Parameter Name="cnt_prs_wrk_nbr" Type="String" />
<asp:Parameter Name="acv_ind" Type="Boolean" />
</InsertParameters>
<SelectParameters>
<asp:SessionParameter Name="com_cde" SessionField="com_cde" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</asp:Content>
Here is examples of my sql that is executing. datasource 1 selects * from company, and datasource 2 selects * from customer where the customer code is associated with the company code in the company_customer table.
Can anybody please let me know what I am doing that is incorrect? Do I need to explicitly state a grouping field (tried, made no difference).....
Thank you in advance.
RB

| <rad:RadGrid ID="holidayRadGrid" AllowPaging="True" |
| AllowSorting="True" GridLines="Horizontal" HorizontalAlign="Center" ShowFooter="true" |
| ShowStatusBar="true" EnableAJAX="false" EnableAJAXLoadingTemplate="True" LoadingTemplateTransparency="25" |
| AutoGenerateColumns="False" Skin="Grid" SkinsPath="~/App_Themes/VertexDefault" OnNeedDataSource="holidayRadGrid_NeedDataSource" |
| OnUpdateCommand="holidayRadGrid_UpdateCommand" PageSize="18" runat="server"> |
| <MasterTableView DataKeyNames="HolidayID,HolidayYear,HolidayDate,HolidayName" EditMode="InPlace" TableLayout="Auto" AllowNaturalSort="false" |
| BorderColor="Black"> |
| <Columns> |
| <rad:GridEditCommandColumn UniqueName="EditCommandColumn" AutoPostBackOnFilter="false" HeaderStyle-Width="10px" /> |
| <rad:GridBoundColumn HeaderStyle-Width="60px" DataField="HolidayName" HeaderText="Holiday" |
| SortExpression="HolidayName" UniqueName="HolidayName" ReadOnly="true" /> |
| <rad:GridTemplateColumn HeaderStyle-Width="100px" DataField="HolidayDate" |
| SortExpression="HolidayDate" UniqueName="HolidayDate" > |
| <ItemTemplate> |
| <asp:Label ID="holidayDateLabel" Text='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate.ToString() : String.Format("{0:MM/dd/yyyy}", Eval("HolidayDate")) %>' runat="server" /> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:Calendar ID="holidayDateCalendar" SelectedDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>' VisibleDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>' runat="server" /> |
| <%--<rad:RadCalendar ID="holidayDateCalendar" AutoPostBack="true" EnableMultiSelect="false" SelectedDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>' VisibleDate='<%# (DateTime) Eval("HolidayDate") == DateTime.MinValue ? ValidDate : Eval("HolidayDate") %>' runat="server" />--%> |
| </EditItemTemplate> |
| </rad:GridTemplateColumn> |
| <rad:GridBoundColumn DataField="HolidayID" UniqueName="HolidayID" ReadOnly="true" Display="false" /> |
| <rad:GridBoundColumn DataField="HolidayYear" UniqueName="HolidayYear" ReadOnly="true" Display="false" /> |
| </Columns> |
| </MasterTableView> |
| <ClientSettings EnablePostBackOnRowClick="true"> |
| <ClientEvents OnGridCreated="holidayRadGridCreated" OnRowContextMenu="holidayRadGridRowContextMenu" /> |
| </ClientSettings> |
| </rad:RadGrid> |
<%
@ Page Language="VB" MasterPageFile="~/TelerikAJAXMasterPage.master" AutoEventWireup="false" CodeFile="Scheduler.aspx.vb" Inherits="Scheduler_Scheduler" %>
<%
@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%
@ Register TagPrefix="Scheduler" TagName="DisplayPanel" Src="~/Controls/Scheduler/DisplayPanel.ascx" %>
<
asp:Content ContentPlaceHolderID="AJAXContentPlaceHolder" runat="server">
<script type="text/javascript" language="javascript">
function AppointmentEditing(sender, eventArgs) {
var apt = eventArgs.get_appointment();
window.radopen(
"Appointment.aspx?Mode=Edit&AppointmentId=" + apt.ID, "rwAdvancedForm");
eventArgs.set_cancel(
true);
}
function AppointmentInserting(sender, eventArgs) {
var start = formatDate(eventArgs.get_startTime());
var isAllDay = eventArgs.get_isAllDay();
// New appointment
window.radopen(
"Appointment.aspx?Mode=Insert&Start=" + start + "&IsAllDay=" + isAllDay, "rwAdvancedForm");
eventArgs.set_cancel(
true);
}
function formatDate(date) {
var year = padNumber(date.getUTCFullYear(), 4);
var month = padNumber(date.getUTCMonth() + 1, 2);
var day = padNumber(date.getUTCDate(), 2);
var hour = padNumber(date.getUTCHours(), 2);
var minute = padNumber(date.getUTCMinutes(), 2);
return year + month + day + hour + minute;
}
function padNumber(number, totalDigits) {
number = number.toString();
var padding = '';
if (totalDigits > number.length) {
for (i = 0; i < (totalDigits - number.length); i++) {
padding +=
'0';
}
}
return padding + number.toString();
}
function refreshScheduler() {
var ajaxManager = $find("RadAjaxManager2");
ajaxManager.ajaxRequest(
'RebindScheduler');
}
</
script>
<
telerik:RadSplitter ID="rpScheduler" Width="1024" BorderSize="0"
FullScreenMode="true" BorderStyle="None" runat="server" Skin="Vista">
<telerik:RadPane ID="rpOptions" Width="22px" runat="server">
<telerik:RadSlidingZone ID="rszOptions" runat="server">
<telerik:RadSlidingPane Title="Display" Width="230" runat="server">
<Scheduler:DisplayPanel ID="dpSideBar" runat="server" />
</telerik:RadSlidingPane>
</telerik:RadSlidingZone>
</telerik:RadPane>
<
telerik:RadPane ID="rpBody" runat="server">
<telerik:RadScheduler ID="rsMainScheduler"
DataEndField="End" DataKeyField="ID" DataStartField="Start"
DataSubjectField="Subject"
StartEditingInAdvancedForm="true"
StartInsertingInAdvancedForm="true"
OnClientAppointmentEditing="AppointmentEditing"
OnClientAppointmentInserting="AppointmentInserting"
SelectedView="DayView"
Height="600"
runat="server" Skin="Vista" MonthView-HeaderDateFormat="MMMM, yyyy">
<TimelineView UserSelectable="false" />
</telerik:RadScheduler>
</
telerik:RadPane>
</
telerik:RadSplitter>
<
telerik:RadAjaxManagerProxy ID="rampScheduler" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="rpScheduler">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="rpScheduler" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</
telerik:RadAjaxManagerProxy>
</
asp:Content>