Imports Telerik.WinControls.UIPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'clear all data (since we have to click twice to see the data) gridReview.Columns.Clear() gridReview.Rows.Clear() 'set up columns gridReview.Columns.Add(New GridViewTextBoxColumn("ID")) gridReview.Columns.Add(New GridViewTextBoxColumn("Employee")) gridReview.Columns.Add(New GridViewTextBoxColumn("Code")) gridReview.Columns.Add(New GridViewTextBoxColumn("Total Hours")) gridReview.Columns.Add(New GridViewCheckBoxColumn("Review")) 'setup some grid proerties gridReview.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill gridReview.AllowAddNewRow = False gridReview.AllowDeleteRow = False gridReview.ShowGroupPanel = False gridReview.Columns(0).ReadOnly = True gridReview.Columns(1).ReadOnly = True gridReview.Columns(2).ReadOnly = True 'load sample data gridReview.Rows.Add(1111, "John Smith", 423, 40.2, False) gridReview.Rows.Add(2222, "Jane Doe", 421, 10.2, False) gridReview.Rows.Add(3333, "Larry Smith", 423, 23.5, False) gridReview.Rows.Add(4444, "Lori Smith", 425, 26.1, False) 'create the hierarchical grid Dim template As New GridViewTemplate() 'setup hierarchical grid columns Dim id As New GridViewTextBoxColumn("ID") Dim shiftdate As New GridViewTextBoxColumn("DisplayDate") Dim in1 As New GridViewTextBoxColumn("In1") Dim out1 As New GridViewTextBoxColumn("Out1") Dim hours As New GridViewTextBoxColumn("Hours") 'setup some hierarchical grid properties template.Columns.AddRange(id, shiftdate, in1, out1, hours) template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill template.AllowAddNewRow = False template.AllowDeleteRow = False template.AllowEditRow = False gridReview.Templates.Add(template) template.HierarchyDataProvider = New GridViewEventDataProvider(template) 'not specified relation as its on-demand. 'code will be put in gridReview_RowSourceNeeded End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load AddHandler gridReview.RowSourceNeeded, AddressOf gridReview_RowSourceNeeded End Sub Private Sub gridReview_RowSourceNeeded(ByVal sender As Object, ByVal e As GridViewRowSourceNeededEventArgs) MessageBox.Show("Show some data") End SubEnd Classprivate
void rgvEjendomme_ViewCellFormatting(object sender, CellFormattingEventArgs e)
{
GridGroupExpanderCellElement cell = e.CellElement as GridGroupExpanderCellElement;
if (cell != null && e.CellElement.RowElement is GridDataRowElement)
{
cell.Expander.Visibility = Telerik.WinControls.ElementVisibility.Visible;
cell.Expander.ToolTipText = "Matrikler: " + ((Ejendom)e.Row.DataBoundItem).Matrikler.Count.ToString();
}
if (e.CellElement is GridDetailViewCellElement && e.CellElement.Children.Count != 0)
{
var pageView = e.CellElement.Children[0] as RadPageViewStripElement;
if (pageView == null)
{
return;
}
}
}
The help file mentions also that 'For direct access to the tree view XML as text use the TreeViewXML property.'. How is this implemented concretely?
Best regards,
Alain Cavenaile
Hello I have created this simple bit of code that displays a hierarchial orders grid (see screen1.jpg)
Now I want to hide the +/- buttons if there are no rows (ie Order Ref 2 & 4) - Having searched the threads and copied the functions from those threads (RadGridView1_ViewCellFormatting,IsExpandable & RadGridView1_ChildViewExpanding)
It just hides them all because rowInfo.ChildRows.Count =0! (as per screen2.jpg)
Can anybody spot where I'm going wrong?
Many thanks
Terry
Public Class Form1 Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load Dim myOrders = New BindingList(Of Order)() Dim myOrderLines = New BindingList(Of OrderLines)() myOrders.Add(New Order(1, "01/01/2011", "Order for Warehouse")) myOrders.Add(New Order(2, "03/05/2011", "Order for home")) myOrders.Add(New Order(3, "12/05/2011", "Order ref xyz")) myOrders.Add(New Order(4, "16/05/2011", "Order ref abc")) myOrderLines.Add(New OrderLines(1, "Power Supply")) myOrderLines.Add(New OrderLines(1, "Hard Disk")) myOrderLines.Add(New OrderLines(3, "Keyboard")) myOrderLines.Add(New OrderLines(3, "Mouse")) RadGridView1.AutoGenerateHierarchy = False RadGridView1.AutoGenerateColumns = True Dim OrderLinesTemplate As New GridViewTemplate OrderLinesTemplate.AllowAddNewRow = False OrderLinesTemplate.DataSource = myOrderLines 'RadGridView1.MasterTemplate.Templates.Add(RolesAndPositionTemplate) Me.RadGridView1.MasterTemplate.Templates.Add(OrderLinesTemplate) 'create the relation Dim relation As New GridViewRelation(RadGridView1.MasterTemplate) relation.RelationName = "Order Lines" relation.ParentColumnNames.Add("OrderId") relation.ChildColumnNames.Add("OrderLineId") relation.ChildTemplate = OrderLinesTemplate Me.RadGridView1.Relations.Add(relation) Me.RadGridView1.DataSource = myOrders End Sub Private Sub RadGridView1_ViewCellFormatting(sender As Object, e As Telerik.WinControls.UI.CellFormattingEventArgs) Handles RadGridView1.ViewCellFormatting Dim cellX As GridGroupExpanderCellElement = TryCast(e.CellElement, GridGroupExpanderCellElement) If cellX IsNot Nothing AndAlso TypeOf e.CellElement.RowElement Is GridDataRowElement Then If Not IsExpandable(cellX.RowInfo) Then cellX.Expander.Visibility = ElementVisibility.Hidden Else cellX.Expander.Visibility = ElementVisibility.Visible End If End If End Sub Private Function IsExpandable(rowInfo As GridViewRowInfo) As Boolean If rowInfo.ChildRows IsNot Nothing AndAlso rowInfo.ChildRows.Count > 0 Then Return True Else Return False End If End Function Private Sub RadGridView1_ChildViewExpanding(sender As Object, e As Telerik.WinControls.UI.ChildViewExpandingEventArgs) Handles RadGridView1.ChildViewExpanding e.Cancel = Not IsExpandable(e.ParentRow) End Sub