or
var qry1 = (from p in obaData.tblProjects |
select p); |
this.DemoGridView.ItemsSource = qry1.ToList(); |
tblProject project = new tblProject(); |
GridViewTableDefinition d = new GridViewTableDefinition(); |
var qry2 = (from r in obaData.tblTasks |
select r); |
d.Relation = new Telerik.Windows.Data.PropertyRelation("projectId"); |
d.DataSource = qry2.ToList(); |
d.IsReadOnly = true; |
this.DemoGridView.ChildTableDefinitions.Add(d); |
DataMemberBinding="{Binding Difference, TargetNullValue=N/A}" |
<Window x:Class="WTSCGCAppInterface.Header" |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
xmlns:TelerikInput="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Input" |
Title="Header" Height="600" Width="800" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"> |
<Grid> |
<telerik:RadWrapPanel Height="60" Name="radPnlFilter" VerticalAlignment="Top"> |
<Label Grid.Row="0" Grid.Column="0">Cust#:</Label> |
<TextBox x:Name="txtCustNum" Width="50" Grid.Row="0" Grid.Column="0"></TextBox> |
<Label Grid.Row="0" Grid.Column="0">Week Ending#:</Label> |
<TelerikInput:RadMaskedTextBox x:Name="txtWeekEnding" Mask="##/##/####" Grid.Row="0" Grid.Column="0"></TelerikInput:RadMaskedTextBox> |
<Label Grid.Row="0" Grid.Column="0">Job#:</Label> |
<TextBox x:Name="txtJobNum" Width="50" Grid.Row="0" Grid.Column="0"></TextBox> |
<Label Grid.Row="0" Grid.Column="0">Sub Job#:</Label> |
<TextBox x:Name="txtSubJobNum" Width="50" Grid.Row="0" Grid.Column="0"></TextBox> |
<Button x:Name="btnFilter" Click="btnFilter_Click">Apply Filter</Button> |
</telerik:RadWrapPanel> |
<telerik:RadGridView Margin="0,58,0,0" Name="radGrdVwHeader" AutoGenerateColumns="False" ColumnsWidthMode="Fill" RowLoaded="radGrdVwHeader_RowLoaded"> |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn Header="HSTAT" UniqueName="HSTAT" IsVisible="False" /> |
<telerik:GridViewDataColumn Header="HCONO" UniqueName="HCONO" IsVisible="False" /> |
<telerik:GridViewDataColumn Header="HDVNO" UniqueName="HDVNO" IsVisible="False" /> |
<telerik:GridViewDataColumn Header="HSEQ" UniqueName="HSEQ" IsVisible="False" /> |
<telerik:GridViewDataColumn Header="HCUST" UniqueName="HCUST" IsVisible="False" /> |
<telerik:GridViewDataColumn Header="Job #" UniqueName="HJBNO" /> |
<telerik:GridViewDataColumn Header="Sub Job #" UniqueName="HSJNO" /> |
<telerik:GridViewDataColumn Header="Week Ending" UniqueName="HDTTK" /> |
<telerik:GridViewDataColumn Header="HDSCD" UniqueName="HDSCD" IsVisible="False" /> |
<telerik:GridViewDataColumn Header="Ticket#" UniqueName="HNUM0" /> |
<telerik:GridViewDataColumn Header="Crew#" UniqueName="HDES0" /> |
<telerik:GridViewDataColumn Header="District" UniqueName="HDES1" /> |
<telerik:GridViewDataColumn Header="FMC#" UniqueName="HDES2" /> |
<telerik:GridViewDataColumn Header="Division" UniqueName="HDES3" /> |
<telerik:GridViewDataColumn Header="Local#" UniqueName="HDES4" /> |
<telerik:GridViewDataColumn Header="Crew Type" UniqueName="HDES5" /> |
<telerik:GridViewDataColumn Header="Zone" UniqueName="HDES6" /> |
</telerik:RadGridView.Columns> |
<telerik:RadGridView.ChildTableDefinitions> |
<telerik:GridViewTableDefinition/> |
</telerik:RadGridView.ChildTableDefinitions> |
<telerik:RadGridView.HierarchyChildTemplate> |
<DataTemplate> |
<telerik:RadGridView x:Name="ProdData" AutoGenerateColumns="False"> |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn Header="PCWNO" UniqueName="PCWNO" /> |
</telerik:RadGridView.Columns> |
</telerik:RadGridView> |
</DataTemplate> |
</telerik:RadGridView.HierarchyChildTemplate> |
</telerik:RadGridView> |
</Grid> |
</Window> |
private void btnFilter_Click(object sender, RoutedEventArgs e) |
{ |
string sWeekEnding = txtWeekEnding.MaskedText; |
string sAlteredFormat = sWeekEnding.Substring(6, 4) + sWeekEnding.Substring(0, 2) + sWeekEnding.Substring(3, 2); |
radGrdVwHeader.ItemsSource = _headerRecs.GetHeaderRecs(1, 0, Convert.ToDecimal(txtCustNum.Text), Convert.ToDecimal(sAlteredFormat), txtJobNum.Text, txtSubJobNum.Text, null, null, ""); |
radGrdVwHeader.ChildTableDefinitions.Clear(); |
GridViewTableDefinition proddataDefinition = new GridViewTableDefinition(); |
proddataDefinition.Relation = new PropertyRelation("ProddataRecs"); |
//this.radGrdVwHeader.TableDefinition.ChildTableDefinitions.Add(proddataDefinition); |
this.radGrdVwHeader.ChildTableDefinitions.Add(proddataDefinition); |
} |
<CustomerTable> |
<Customer> |
<Name>John</Name> |
<Sex>Male</Sex> |
<AccountTable> |
<Account> |
<AccountNo>0001</AccountNo> |
<Status>Active</Status> |
</Account> |
</AccountTable> |
</Customer> |
<Customer> |
<Name>Lily</Name> |
<Sex>Female</Sex> |
<AccountTable> |
<Account> |
<AccountNo>0002</AccountNo> |
<Status>Active</Status> |
</Account> |
<Account> |
<AccountNo>0003</AccountNo> |
<Status>Terminated</Status> |
</Account> |
</AccountTable> |
</Customer> |
</CustomerTable> |
I've managed to get the hierarchy to work using this DataTable object, but I would have to load the data of all child tables (in this case
the AccountTable) before binding to the ItemsSource of the RadGridView control. Is there anyway to load the child table data only when a row is expanded?
Also, for my case I cannot hard code the structure in class files (ie: creating Customer and Account classes) as shown in the examples in the demo.
2. Is there an event fired when a row is expanded to display child tables (ie: + sign clicked)?
3. Can anyone provide an example on how to use the BuildHierachyFromDataSet method in the RadGridView?