<telerik:RadGridView Name="gvAccount" Width="auto" ColumnsWidthMode="Fill" |
AutoGenerateColumns="False" FlowDirection="RightToLeft" ShowGroupPanel="False" IsFilteringAllowed="False" CanUserResizeColumns="False"> |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetTypeName" Header="סוג תקציב" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Number" Header="מספר חשבון" Width="90" /> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Name" Header="שם חשבון" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="ActivityBudget" Header="הקצבה כוללת אש''ח" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="TotalBudget" Header="יתרה לתקצוב" Width="90" /> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="PlanBudget" Header="שריון לפעילות" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="SumActualBudget" Header="התחיבות לפעילות" Width="90" /> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="a" Header="שולם בפועל" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetAllocation" Header="יתרה לתשלום" Width="90"/> |
<telerik:GridViewComboBoxColumn DataMemberBinding="{Binding Path=ActivityTypeName}" |
DisplayMemberPath="Name" SelectedValueMemberPath="Name" Header="סוג פעילות" UniqueName="ActivityTypeName" Width="90*"/> |
</telerik:RadGridView.Columns> |
<telerik:RadGridView.HierarchyChildTemplate> |
<DataTemplate> |
<StackPanel DataContext="{x:Null}"> |
<telerik:RadGridView CanUserReorderColumns="False" Name="gvBudget" ColumnsWidthMode="Fill" |
CanUserFreezeColumns="False" ShowGroupPanel="False" AutoGenerateColumns="False" ItemsSource="{Binding}" |
Loaded="OnChildGridLoaded" FlowDirection="RightToLeft" IsFilteringAllowed="False" ShowColumnHeaders="False" ColumnBackground="AliceBlue" HorizontalContentAlignment="Right" ClipToBounds="True"> |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetTypeName" Header="סוג תקציב" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Number" Header="מספר חשבון" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Name" Header="שם חשבון" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="ActivityBudget" Header="הקצבה כוללת אש''ח" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="TotalBudget" Header="יתרה לתקצוב" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="PlanBudget" Header="שריון לפעילות" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="SumActualBudget" Header="התחיבות לפעילות" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="a" Header="שולם בפועל" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetAllocation" Header="יתרה לתשלום" Width="90"/> |
<telerik:GridViewComboBoxColumn DataMemberBinding="{Binding Path=ActivityTypeName}" |
DisplayMemberPath="Name" SelectedValueMemberPath="Name" Header="סוג פעילות" UniqueName="ActivityTypeName" Width="90*"/> |
</telerik:RadGridView.Columns> |
<telerik:RadGridView.HierarchyChildTemplate> |
<DataTemplate> |
<StackPanel DataContext="{x:Null}"> |
<telerik:RadGridView CanUserReorderColumns="False" Name="gvSubBudget" ColumnsWidthMode="Fill" |
CanUserFreezeColumns="False" ShowGroupPanel="False" AutoGenerateColumns="False" ItemsSource="{Binding}" |
Loaded="OnSubChildGridLoaded" FlowDirection="RightToLeft" IsFilteringAllowed="False" ShowColumnHeaders="False" ColumnBackground="AliceBlue" HorizontalContentAlignment="Right" ClipToBounds="True"> |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetTypeName" Header="סוג תקציב" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Number" Header="מספר חשבון" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Name" Header="שם חשבון" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="ActivityBudget" Header="הקצבה כוללת אש''ח" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="TotalBudget" Header="יתרה לתקצוב" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="PlanBudget" Header="שריון לפעילות" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="SumActualBudget" Header="התחיבות לפעילות" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="a" Header="שולם בפועל" Width="90"/> |
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetAllocation" Header="יתרה לתשלום" Width="90"/> |
<telerik:GridViewComboBoxColumn DataMemberBinding="{Binding Path=ActivityTypeName}" |
DisplayMemberPath="Name" SelectedValueMemberPath="Name" Header="סוג פעילות" UniqueName="ActivityTypeName" Width="90*"/> |
</telerik:RadGridView.Columns> |
</telerik:RadGridView> |
</StackPanel> |
</DataTemplate> |
</telerik:RadGridView.HierarchyChildTemplate> |
</telerik:RadGridView> |
</StackPanel> |
</DataTemplate> |
</telerik:RadGridView.HierarchyChildTemplate> |
</telerik:RadGridView> |
private void BindDataMainGrid() |
{ |
try |
{ |
((GridViewComboBoxColumn)this.gvAccount.Columns["ActivityTypeName"]).ItemsSource = ComboBoxValues.GetComboValues(CommonValues.GetActivityType()); |
DataSet dataSet = this.GetData(); |
// This is needed to make the grid use the HierarchyChildTemplate |
GridViewTableDefinition detailDefinition = new GridViewTableDefinition(); |
// Tell the detailsDefinition to pull its data from the Details DataTable. |
detailDefinition.DataSource = dataSet.Tables["Budget"].DefaultView; |
// Specify the relation between the two tables, similar to what is done in the DataSet. |
TableRelation tr = new TableRelation(); |
tr.FieldNames.Add(new FieldDescriptorNamePair("ID", "ParentID")); |
detailDefinition.Relation = tr; |
// Add a GridViewTableDefinition to the grid to make it use the HierarchyChildTemplate |
// defined in XAML. |
if (this.gvAccount.TableDefinition.ChildTableDefinitions.Count < 1) |
this.gvAccount.TableDefinition.ChildTableDefinitions.Add(detailDefinition); |
// Bind the grid to the "master" table. |
this.gvAccount.ItemsSource = dataSet.Tables["Account"].DefaultView; |
} |
private DataSet GetData() |
{ |
try |
{ |
dsBudget dsac = ServiceData.GetBudgetsByAccount(1); |
if (dsac != null) |
{ |
DataSet ds = new DataSet(); |
//DataTable dt = dsac.Tables["Budget"]; |
DataView dv = new DataView(dsac.Tables["Budget"], "Type=1", "", DataViewRowState.CurrentRows); |
ds.Tables.Add((DataTable)dv.ToTable("Account")); |
dv = new DataView(dsac.Tables["Budget"], "Type=2", "", DataViewRowState.CurrentRows); |
ds.Tables.Add((DataTable)dv.ToTable("Budget")); |
dv = new DataView(dsac.Tables["Budget"], "Type=3", "", DataViewRowState.CurrentRows); |
ds.Tables.Add((DataTable)dv.ToTable("SubBudget")); |
ds.Relations.Add("BudgetRelation", |
ds.Tables["Account"].Columns["ID"], |
ds.Tables["Budget"].Columns["ParentID"]); |
ds.Relations.Add("SubBudgetRelation", |
ds.Tables["Budget"].Columns["ID"], |
ds.Tables["SubBudget"].Columns["ParentID"]); |
return ds; |
} |
} |
catch |
{ |
} |
return null; |
} |
} |
Hello,
My application looks like your example "firstlook".
I want to be able to hide expand/Collapse image if there are no child records. I saw the example N° 101300_HideExpandButton.
Today , is there an easier way to hide expand/Collapse ? (because this post dates september 18th, 2008)
Thanks.
Steph
PreviewDataRecordCreate for the intialization of the grid to control the expander which works well. However i would like to validate the expander when the user selects the row (selectinchanged event)
I have tried to cast to the ExpandableDataRecord but this is always null. I would like validate that the expander is valid i.e. i do have data for the child grid. I am currently calling a rebind of the grid view but this does not help. I dont want to remove the row and re-add it as that seems to be a hack.
Secondly is there an event when the user clicks on the expander (+-) as this does cause a selectionchanged event?
The last question is that there is allot of classes marked as deprecated such as ExpandableDataRecord is there mechanism to look at which classes we should use instead as the forum posts would refer to the old classes?
Kind Regards,
Clinton