Hi Ludovic,
Thank you for contacting us.
Please note that
RadGridView should contain columns for all cells represented in the view definition. So, you have to add columns first. There is a restriction in
RadGridView which says that all columns should have unique name, so you have to change names of
Date and
Amount columns. You should use the
HeaderText property of
GridViewColumn to customize the header cell text.
When using
HtmlViewDefinition, RadGridView repeats the header layout in all rows. So, you may prefer the
ColumnGroupsViewDefinition instead. If this is the case, you can use the following code:
ColumnGroupsViewDefinition view = new ColumnGroupsViewDefinition();
AddColumnWithoutHeader(view.ColumnGroups, this.radGridView1.Columns["Customer Name"]);
AddColumnWithoutHeader(view.ColumnGroups, this.radGridView1.Columns["Unit"]);
AddColumnWithoutHeader(view.ColumnGroups, this.radGridView1.Columns["Unit Type"]);
AddColumnWithoutHeader(view.ColumnGroups, this.radGridView1.Columns["Unit Area"]);
view.ColumnGroups.Add(new GridViewColumnGroup("Initial Booking"));
view.ColumnGroups[4].Rows.Add(new GridViewColumnGroupRow());
view.ColumnGroups[4].Rows[0].Columns.Add(this.radGridView1.Columns["Amount1"]);
view.ColumnGroups[4].Rows[0].Columns.Add(this.radGridView1.Columns["Date1"]);
view.ColumnGroups.Add(new GridViewColumnGroup("Booking"));
view.ColumnGroups[5].Rows.Add(new GridViewColumnGroupRow());
view.ColumnGroups[5].Rows[0].Columns.Add(this.radGridView1.Columns["Amount2"]);
view.ColumnGroups[5].Rows[0].Columns.Add(this.radGridView1.Columns["Date2"]);
view.ColumnGroups.Add(new GridViewColumnGroup("Contract signing"));
view.ColumnGroups[6].Rows.Add(new GridViewColumnGroupRow());
view.ColumnGroups[6].Rows[0].Columns.Add(this.radGridView1.Columns["Amount3"]);
view.ColumnGroups[6].Rows[0].Columns.Add(this.radGridView1.Columns["Date3"]);
AddColumnWithoutHeader(view.ColumnGroups, this.radGridView1.Columns["Contract_signed"]);
view.ColumnGroups.Add(new GridViewColumnGroup("Transfer"));
view.ColumnGroups[8].Rows.Add(new GridViewColumnGroupRow());
view.ColumnGroups[8].Rows[0].Columns.Add(this.radGridView1.Columns["Amount4"]);
view.ColumnGroups[8].Rows[0].Columns.Add(this.radGridView1.Columns["Date4"]);
AddColumnWithoutHeader(view.ColumnGroups, this.radGridView1.Columns["Sale"]);
AddColumnWithoutHeader(view.ColumnGroups, this.radGridView1.Columns["Comment"]);
this.radGridView1.ViewDefinition = view;
void AddColumnWithoutHeader(ColumnGroupCollection columnGroups, GridViewColumn column)
{
columnGroups.Add(new GridViewColumnGroup(column.Name));
int i = columnGroups.Count - 1;
if (i < 0) i = 0;
columnGroups[i].ShowHeader = false;
columnGroups[i].Rows.Add(new GridViewColumnGroupRow());
columnGroups[i].Rows[0].Columns.Add((GridViewDataColumn)column);
}
I hope this helps. If you need further assistance, do not hesitate to write back.
Greetings,
Jack
the Telerik team