Hi,
I need to have a grid which can simulate the pivoting behavior of a
pivot grid. I know Telerik does not have a pivot grid in Winforms,
but would like to know if such a thing can be implemented somehow.
In the snapshot attached, pivoting has been done on 2 columns
"Designation" and "Age". The remaining columns can either show the count
of values or the sum of values.
Hoping for your help,
Thanks and regards,
Nihar.
public partial class SPRadButton : Telerik.WinControls.UI.RadForm |
{ |
public SPRadButton() |
{ |
InitializeComponent(); |
} |
private void radButton1_Click(object sender, EventArgs e) |
{ |
RadMessageBox.Show("success"); |
} |
} |
partial class SPRadButton |
{ |
/// <summary> |
/// Required designer variable. |
/// </summary> |
private System.ComponentModel.IContainer components = null; |
/// <summary> |
/// Clean up any resources being used. |
/// </summary> |
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> |
protected override void Dispose(bool disposing) |
{ |
if (disposing && (components != null)) |
{ |
components.Dispose(); |
} |
base.Dispose(disposing); |
} |
#region Windows Form Designer generated code |
/// <summary> |
/// Required method for Designer support - do not modify |
/// the contents of this method with the code editor. |
/// </summary> |
private void InitializeComponent() |
{ |
this.components = new System.ComponentModel.Container(); |
Telerik.WinControls.Keyboard.InputBinding inputBinding1 = new Telerik.WinControls.Keyboard.InputBinding(); |
Telerik.WinControls.Keyboard.Chord chord1 = new Telerik.WinControls.Keyboard.Chord(); |
Telerik.WinControls.Keyboard.ChordModifier chordModifier1 = new Telerik.WinControls.Keyboard.ChordModifier(); |
Telerik.WinControls.Elements.ClickCommand clickCommand1 = new Telerik.WinControls.Elements.ClickCommand(); |
Telerik.WinControls.Keyboard.InputBinding inputBinding2 = new Telerik.WinControls.Keyboard.InputBinding(); |
Telerik.WinControls.Keyboard.Chord chord2 = new Telerik.WinControls.Keyboard.Chord(); |
Telerik.WinControls.Keyboard.ChordModifier chordModifier2 = new Telerik.WinControls.Keyboard.ChordModifier(); |
Telerik.WinControls.Elements.FocusCommand focusCommand1 = new Telerik.WinControls.Elements.FocusCommand(); |
Telerik.WinControls.Keyboard.InputBinding inputBinding3 = new Telerik.WinControls.Keyboard.InputBinding(); |
Telerik.WinControls.Keyboard.Chord chord3 = new Telerik.WinControls.Keyboard.Chord(); |
Telerik.WinControls.Keyboard.ChordModifier chordModifier3 = new Telerik.WinControls.Keyboard.ChordModifier(); |
Telerik.WinControls.Elements.ClickCommand clickCommand2 = new Telerik.WinControls.Elements.ClickCommand(); |
this.radButton1 = new Telerik.WinControls.UI.RadButton(); |
this.radTextBox1 = new Telerik.WinControls.UI.RadTextBox(); |
this.shortcuts1 = new Telerik.WinControls.Keyboard.Shortcuts(this.components); |
((System.ComponentModel.ISupportInitialize)(this.radButton1)).BeginInit(); |
((System.ComponentModel.ISupportInitialize)(this.radTextBox1)).BeginInit(); |
((System.ComponentModel.ISupportInitialize)(this)).BeginInit(); |
this.SuspendLayout(); |
// |
// radButton1 |
// |
chordModifier1.AltModifier = false; |
chordModifier1.ControlModifier = true; |
chordModifier1.ShiftModifier = false; |
chord1.ChordModifier = chordModifier1; |
chord1.Keys = "Ctrl+N"; |
inputBinding1.Chord = chord1; |
clickCommand1.ContextType = null; |
clickCommand1.ImageList = null; |
clickCommand1.Name = "ActionCommand"; |
clickCommand1.OwnerType = typeof(Telerik.WinControls.RadItem); |
clickCommand1.Text = "This command rises the Click event of a selected RadItem instance."; |
clickCommand1.Type = ""; |
inputBinding1.Command = clickCommand1; |
inputBinding1.CommandContext = this.radButton1; |
this.radButton1.CommandBindings.AddRange(new Telerik.WinControls.Keyboard.InputBinding[] { |
inputBinding1}); |
this.radButton1.Location = new System.Drawing.Point(30, 23); |
this.radButton1.Name = "radButton1"; |
this.radButton1.Size = new System.Drawing.Size(237, 23); |
this.radButton1.TabIndex = 0; |
this.radButton1.Text = "CTRL+N"; |
this.radButton1.Click += new System.EventHandler(this.radButton1_Click); |
// |
// radTextBox1 |
// |
this.radTextBox1.Location = new System.Drawing.Point(30, 52); |
this.radTextBox1.Name = "radTextBox1"; |
this.radTextBox1.NullText = "Press CTRL+F to focus"; |
this.radTextBox1.Size = new System.Drawing.Size(237, 20); |
this.radTextBox1.TabIndex = 1; |
// |
// shortcuts1 |
// |
chordModifier2.AltModifier = false; |
chordModifier2.ControlModifier = true; |
chordModifier2.ShiftModifier = false; |
chord2.ChordModifier = chordModifier2; |
chord2.Keys = "Ctrl+F"; |
inputBinding2.Chord = chord2; |
focusCommand1.ContextType = null; |
focusCommand1.ImageList = null; |
focusCommand1.Name = "FocusCommand"; |
focusCommand1.OwnerType = typeof(Telerik.WinControls.RadItem); |
focusCommand1.Text = "This command gives the focus to a selected RadItem instance."; |
focusCommand1.Type = ""; |
inputBinding2.Command = focusCommand1; |
inputBinding2.CommandContext = this.radTextBox1; |
chordModifier3.AltModifier = false; |
chordModifier3.ControlModifier = true; |
chordModifier3.ShiftModifier = false; |
chord3.ChordModifier = chordModifier3; |
chord3.Keys = "Ctrl+N"; |
inputBinding3.Chord = chord3; |
clickCommand2.ContextType = null; |
clickCommand2.ImageList = null; |
clickCommand2.Name = "ActionCommand"; |
clickCommand2.OwnerType = typeof(Telerik.WinControls.RadItem); |
clickCommand2.Text = "This command rises the Click event of a selected RadItem instance."; |
clickCommand2.Type = ""; |
inputBinding3.Command = clickCommand2; |
inputBinding3.CommandContext = this.radButton1; |
this.shortcuts1.InputBindings.AddRange(new Telerik.WinControls.Keyboard.InputBinding[] { |
inputBinding2, |
inputBinding3}); |
thisthis.shortcuts1.Owner = this; |
// |
// SPRadButton |
// |
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); |
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
this.ClientSize = new System.Drawing.Size(293, 88); |
this.Controls.Add(this.radTextBox1); |
this.Controls.Add(this.radButton1); |
this.Name = "SPRadButton"; |
// |
// |
// |
this.RootElement.ApplyShapeToControl = true; |
this.Text = "RadForm1"; |
this.ThemeName = "ControlDefault"; |
((System.ComponentModel.ISupportInitialize)(this.radButton1)).EndInit(); |
((System.ComponentModel.ISupportInitialize)(this.radTextBox1)).EndInit(); |
((System.ComponentModel.ISupportInitialize)(this)).EndInit(); |
this.ResumeLayout(false); |
this.PerformLayout(); |
} |
#endregion |
private Telerik.WinControls.UI.RadButton radButton1; |
private Telerik.WinControls.Keyboard.Shortcuts shortcuts1; |
private Telerik.WinControls.UI.RadTextBox radTextBox1; |
} |
Imports
Telerik.WinControls.UI
Public
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
Sub
End
Class
private
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