Thread ID: |
Created: |
Updated: |
Platform: |
Replies: |
19501 | Sep 28,2004 06:54 AM UTC | Jun 5,2011 07:50 PM UTC | WinForms | 5 |
![]() |
Tags: Grouping |
private void groupingGrid1_TableControlPrepareViewStyleInfo(object sender, GridTableControlPrepareViewStyleInfoEventArgs e)
{
GridTableCellStyleInfo style = (GridTableCellStyleInfo) e.Inner.Style;
RecordRow recordRow = style.TableCellIdentity.DisplayElement as RecordRow;
if (recordRow != null)
{
Record r = style.TableCellIdentity.DisplayElement.ParentRecord;
//int recordIndex = r.ParentTable.Records.IndexOf(r);
int rowInRecordIndex = r.RecordRows.IndexOf(recordRow);
GridColumnDescriptor column = style.TableCellIdentity.Column;
if (column != null)
{
switch (column.Name)
{
case "CompanyName":
{
e.Inner.Style.Interior = new Syncfusion.Drawing.BrushInfo(Syncfusion.Drawing.GradientStyle.Vertical, Color.White, Color.Orange);
e.Inner.Style.Text = rowInRecordIndex.ToString();
break;
}
case "ContactName":
{
e.Inner.Style.Interior = new Syncfusion.Drawing.BrushInfo(Syncfusion.Drawing.GradientStyle.Vertical, Color.White, Color.Orange);
break;
}
}
}
}
}
private void TableModel_QueryCoveredRange(object sender, GridQueryCoveredRangeEventArgs e)
{
GridTableModel model = (GridTableModel) sender;
GridTable thisTable = model.Table;
if (e.RowIndex < thisTable.DisplayElements.Count)
{
Element el = thisTable.DisplayElements[e.RowIndex];
if (el is RecordRow && el.ParentGroup != null)
{
GridTableCellStyleInfo style = model[e.RowIndex, e.ColIndex];
if (style.TableCellIdentity.Column != null
&& style.TableCellIdentity.Column.Name == "CompanyName")
{
Group group = el.ParentGroup;
if (group != null && !group.IsTopLevelGroup)
{
int tablePos = thisTable.DisplayElements.IndexOf(group);
int firstRow = tablePos+1;
int lastRow = tablePos+group.GetVisibleCount()-1;
e.Range = GridRangeInfo.Cells(firstRow, e.ColIndex, lastRow, e.ColIndex);
e.Handled = true;
}
}
}
}
}
private void TableModel_QueryBanneredRange(object sender, GridQueryBanneredRangeEventArgs e)
{
GridTableModel model = (GridTableModel) sender;
GridTable thisTable = model.Table;
if (e.RowIndex < thisTable.DisplayElements.Count)
{
Element el = thisTable.DisplayElements[e.RowIndex];
if (el is RecordRow && el.ParentGroup != null)
{
GridTableCellStyleInfo style = model[e.RowIndex, e.ColIndex];
if (style.TableCellIdentity.Column != null
&& style.TableCellIdentity.Column.Name == "ContactName")
{
Group group = el.ParentGroup;
if (group != null && !group.IsTopLevelGroup)
{
int tablePos = thisTable.DisplayElements.IndexOf(group);
int firstRow = tablePos+1;
int lastRow = tablePos+group.GetVisibleCount()-1;
e.Range = GridRangeInfo.Cells(firstRow, e.ColIndex, lastRow, e.ColIndex);
e.Handled = true;
}
}
}
}
}
I attached a modified GroupCustomers project. Make sure the xml file can be found that is loaded in the form ctor.
Stefan
GroupCustomers_Covered_and_Bannered_Ranges_5304.zip
This post will be permanently deleted. Are you sure you want to continue?
Sorry, An error occured while processing your request. Please try again later.
This page will automatically be redirected to the sign-in page in 10 seconds.