Loading...
Loading...
Compare original and translation side by side
using Syncfusion.Windows.Forms.Grid.Grouping;
using System.Data;
// Create the control
GridGroupingControl gridGroupingControl1 = new GridGroupingControl();
gridGroupingControl1.Dock = DockStyle.Fill;
this.Controls.Add(gridGroupingControl1);
// Create sample data
DataTable dataTable = new DataTable("Employees");
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Department", typeof(string));
dataTable.Columns.Add("Salary", typeof(decimal));
dataTable.Rows.Add(1, "John Smith", "Sales", 50000);
dataTable.Rows.Add(2, "Sarah Jones", "Marketing", 55000);
dataTable.Rows.Add(3, "Mike Wilson", "Sales", 52000);
dataTable.Rows.Add(4, "Lisa Brown", "Marketing", 58000);
dataTable.Rows.Add(5, "Tom Davis", "IT", 65000);
// Bind data source
gridGroupingControl1.DataSource = dataTable;
// Enable grouping with GroupDropArea
gridGroupingControl1.ShowGroupDropArea = true;
// Add a group by Department
gridGroupingControl1.TableDescriptor.GroupedColumns.Add("Department");
// Add a summary to show total salary per group
GridSummaryColumnDescriptor summaryColumn = new GridSummaryColumnDescriptor();
summaryColumn.MappingName = "Salary";
summaryColumn.SummaryType = SummaryType.DoubleAggregate;
summaryColumn.Format = "{Sum:C}";
summaryColumn.Name = "TotalSalary";
GridSummaryRowDescriptor summaryRow = new GridSummaryRowDescriptor();
summaryRow.SummaryColumns.Add(summaryColumn);
gridGroupingControl1.TableDescriptor.SummaryRows.Add(summaryRow);
// Enable sorting
gridGroupingControl1.TableOptions.AllowSortColumns = true;using Syncfusion.Windows.Forms.Grid.Grouping;
using System.Data;
// 创建控件
GridGroupingControl gridGroupingControl1 = new GridGroupingControl();
gridGroupingControl1.Dock = DockStyle.Fill;
this.Controls.Add(gridGroupingControl1);
// 创建示例数据
DataTable dataTable = new DataTable("Employees");
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Department", typeof(string));
dataTable.Columns.Add("Salary", typeof(decimal));
dataTable.Rows.Add(1, "John Smith", "Sales", 50000);
dataTable.Rows.Add(2, "Sarah Jones", "Marketing", 55000);
dataTable.Rows.Add(3, "Mike Wilson", "Sales", 52000);
dataTable.Rows.Add(4, "Lisa Brown", "Marketing", 58000);
dataTable.Rows.Add(5, "Tom Davis", "IT", 65000);
// 绑定数据源
gridGroupingControl1.DataSource = dataTable;
// 启用分组与分组拖放区域
gridGroupingControl1.ShowGroupDropArea = true;
// 按部门字段添加分组
gridGroupingControl1.TableDescriptor.GroupedColumns.Add("Department");
// 添加汇总展示每个分组的薪资总和
GridSummaryColumnDescriptor summaryColumn = new GridSummaryColumnDescriptor();
summaryColumn.MappingName = "Salary";
summaryColumn.SummaryType = SummaryType.DoubleAggregate;
summaryColumn.Format = "{Sum:C}";
summaryColumn.Name = "TotalSalary";
GridSummaryRowDescriptor summaryRow = new GridSummaryRowDescriptor();
summaryRow.SummaryColumns.Add(summaryColumn);
gridGroupingControl1.TableDescriptor.SummaryRows.Add(summaryRow);
// 启用排序
gridGroupingControl1.TableOptions.AllowSortColumns = true;// Assuming Orders and OrderDetails are related tables in a DataSet
DataSet dataSet = GetOrdersDataSet(); // Your data source
// Bind to parent table
gridGroupingControl1.DataSource = dataSet;
gridGroupingControl1.DataMember = "Orders";
// Nested tables are automatically detected from DataSet relations
// Customize child table appearance
GridRelationDescriptor relation = gridGroupingControl1.TableDescriptor.Relations[0];
relation.ChildTableDescriptor.Appearance.AlternateRecordFieldCell.BackColor = Color.LightBlue;// 假设Orders和OrderDetails是DataSet中的关联表
DataSet dataSet = GetOrdersDataSet(); // 你的数据源
// 绑定父表
gridGroupingControl1.DataSource = dataSet;
gridGroupingControl1.DataMember = "Orders";
// 嵌套表会自动从DataSet的关系中检测到
// 自定义子表外观
GridRelationDescriptor relation = gridGroupingControl1.TableDescriptor.Relations[0];
relation.ChildTableDescriptor.Appearance.AlternateRecordFieldCell.BackColor = Color.LightBlue;using Syncfusion.GridHelperClasses;
// Wire dynamic filter
GridDynamicFilter dynamicFilter = new GridDynamicFilter();
dynamicFilter.WireGrid(gridGroupingControl1);
// Enable filter bar
gridGroupingControl1.TopLevelGroupOptions.ShowFilterBar = true;
// Enable filtering for specific columns
foreach (GridColumnDescriptor column in gridGroupingControl1.TableDescriptor.Columns)
{
column.AllowFilter = true;
}using Syncfusion.GridHelperClasses;
// 绑定动态过滤
GridDynamicFilter dynamicFilter = new GridDynamicFilter();
dynamicFilter.WireGrid(gridGroupingControl1);
// 启用过滤栏
gridGroupingControl1.TopLevelGroupOptions.ShowFilterBar = true;
// 为所有列启用过滤
foreach (GridColumnDescriptor column in gridGroupingControl1.TableDescriptor.Columns)
{
column.AllowFilter = true;
}using Syncfusion.GridHelperClasses;
// Create and wire Excel filter
GridExcelFilter excelFilter = new GridExcelFilter();
excelFilter.AllowSearch = true; // Enable search in filter dropdown
excelFilter.AllowResize = true; // Allow resizing filter popup
excelFilter.EnableNumberFilter = true; // Enable number filters
excelFilter.EnableDateFilter = true; // Enable date filters
excelFilter.AllowFilterByColor = true; // Enable filter by cell color
excelFilter.WireGrid(gridGroupingControl1);using Syncfusion.GridHelperClasses;
// 创建并绑定Excel过滤
GridExcelFilter excelFilter = new GridExcelFilter();
excelFilter.AllowSearch = true; // 启用过滤下拉框搜索
excelFilter.AllowResize = true; // 允许调整过滤弹窗大小
excelFilter.EnableNumberFilter = true; // 启用数字过滤
excelFilter.EnableDateFilter = true; // 启用日期过滤
excelFilter.AllowFilterByColor = true; // 启用按单元格颜色过滤
excelFilter.WireGrid(gridGroupingControl1);// Multi-level grouping
gridGroupingControl1.TableDescriptor.GroupedColumns.Add("Country");
gridGroupingControl1.TableDescriptor.GroupedColumns.Add("City");
// Customize group options
gridGroupingControl1.TopLevelGroupOptions.ShowCaption = true;
gridGroupingControl1.TopLevelGroupOptions.ShowGroupHeader = true;
gridGroupingControl1.TopLevelGroupOptions.ShowGroupFooter = true;
// Customize caption text with tokens
gridGroupingControl1.ChildGroupOptions.CaptionText =
"{CategoryName}: {Category} ({RecordCount} items)";// 多级分组
gridGroupingControl1.TableDescriptor.GroupedColumns.Add("Country");
gridGroupingControl1.TableDescriptor.GroupedColumns.Add("City");
// 自定义分组选项
gridGroupingControl1.TopLevelGroupOptions.ShowCaption = true;
gridGroupingControl1.TopLevelGroupOptions.ShowGroupHeader = true;
gridGroupingControl1.TopLevelGroupOptions.ShowGroupFooter = true;
// 使用占位符自定义标题文本
gridGroupingControl1.ChildGroupOptions.CaptionText =
"{CategoryName}: {Category} ({RecordCount} items)";// Apply conditional formatting based on cell value
gridGroupingControl1.QueryCellStyleInfo += (sender, e) =>
{
if (e.TableCellIdentity.TableCellType == GridTableCellType.RecordFieldCell)
{
if (e.TableCellIdentity.Column.Name == "Salary")
{
decimal salary = Convert.ToDecimal(e.Style.CellValue);
if (salary > 60000)
{
e.Style.BackColor = Color.LightGreen;
e.Style.Font.Bold = true;
}
else if (salary < 40000)
{
e.Style.BackColor = Color.LightCoral;
}
}
}
};// 基于单元格值应用条件格式
gridGroupingControl1.QueryCellStyleInfo += (sender, e) =>
{
if (e.TableCellIdentity.TableCellType == GridTableCellType.RecordFieldCell)
{
if (e.TableCellIdentity.Column.Name == "Salary")
{
decimal salary = Convert.ToDecimal(e.Style.CellValue);
if (salary > 60000)
{
e.Style.BackColor = Color.LightGreen;
e.Style.Font.Bold = true;
}
else if (salary < 40000)
{
e.Style.BackColor = Color.LightCoral;
}
}
}
};// Add multiple summaries for a group
GridSummaryRowDescriptor summaryRow = new GridSummaryRowDescriptor();
summaryRow.ShowSummaryInRow = false; // Show in separate columns
// Count summary
GridSummaryColumnDescriptor countColumn = new GridSummaryColumnDescriptor(
"Count", SummaryType.Count, "ID", "{Count}");
summaryRow.SummaryColumns.Add(countColumn);
// Average summary
GridSummaryColumnDescriptor avgColumn = new GridSummaryColumnDescriptor(
"Average", SummaryType.DoubleAggregate, "Salary", "Avg: {Average:C}");
summaryRow.SummaryColumns.Add(avgColumn);
// Total summary
GridSummaryColumnDescriptor sumColumn = new GridSummaryColumnDescriptor(
"Total", SummaryType.DoubleAggregate, "Salary", "Total: {Sum:C}");
summaryRow.SummaryColumns.Add(sumColumn);
gridGroupingControl1.TableDescriptor.SummaryRows.Add(summaryRow);// 为分组添加多个汇总
GridSummaryRowDescriptor summaryRow = new GridSummaryRowDescriptor();
summaryRow.ShowSummaryInRow = false; // 在独立列中展示
// 计数汇总
GridSummaryColumnDescriptor countColumn = new GridSummaryColumnDescriptor(
"Count", SummaryType.Count, "ID", "{Count}");
summaryRow.SummaryColumns.Add(countColumn);
// 平均值汇总
GridSummaryColumnDescriptor avgColumn = new GridSummaryColumnDescriptor(
"Average", SummaryType.DoubleAggregate, "Salary", "Avg: {Average:C}");
summaryRow.SummaryColumns.Add(avgColumn);
// 总和汇总
GridSummaryColumnDescriptor sumColumn = new GridSummaryColumnDescriptor(
"Total", SummaryType.DoubleAggregate, "Salary", "Total: {Sum:C}");
summaryRow.SummaryColumns.Add(sumColumn);
gridGroupingControl1.TableDescriptor.SummaryRows.Add(summaryRow);| Property | Type | Description |
|---|---|---|
| object | Gets or sets the data source for the grid |
| string | Gets or sets the data member within the data source |
| bool | Shows or hides the group drop area for drag-drop grouping |
| GridTableDescriptor | Provides access to table configuration and columns |
| GridTableOptionsStyleInfo | Configures table-level options |
| GridGroupOptionsStyleInfo | Configures options for top-level groups |
| GridGroupOptionsStyleInfo | Configures options for child groups |
| 属性 | 类型 | 描述 |
|---|---|---|
| object | 获取或设置网格的数据源 |
| string | 获取或设置数据源中的数据成员 |
| bool | 展示或隐藏用于拖拽分组的分组拖放区域 |
| GridTableDescriptor | 提供表格配置和列的访问入口 |
| GridTableOptionsStyleInfo | 配置表格级别的选项 |
| GridGroupOptionsStyleInfo | 配置顶级分组的选项 |
| GridGroupOptionsStyleInfo | 配置子分组的选项 |
| Property | Type | Description |
|---|---|---|
| SortColumnDescriptorCollection | Columns by which data is grouped |
| SortColumnDescriptorCollection | Columns by which data is sorted |
| RecordFilterDescriptorCollection | Programmatic record filters |
| GridSummaryRowDescriptorCollection | Summary row definitions |
| GridColumnDescriptorCollection | Column descriptors |
| GridRelationDescriptorCollection | Child table relations |
| 属性 | 类型 | 描述 |
|---|---|---|
| SortColumnDescriptorCollection | 数据分组依据的列集合 |
| SortColumnDescriptorCollection | 数据排序依据的列集合 |
| RecordFilterDescriptorCollection | 程序化记录过滤规则集合 |
| GridSummaryRowDescriptorCollection | 汇总行定义集合 |
| GridColumnDescriptorCollection | 列描述符集合 |
| GridRelationDescriptorCollection | 子表关系集合 |
QueryValueSaveValueSourceListListChangedQueryValueSaveValueSourceListListChangedQueryCellStyleInfoTableControlCellClickTableControlCellDoubleClickTableControlCurrentCellActivatedQueryCellStyleInfoTableControlCellClickTableControlCellDoubleClickTableControlCurrentCellActivatedGroupExpandingGroupExpandedGroupCollapsingGroupCollapsedGroupedColumns.ChangingChangedGroupExpandingGroupExpandedGroupCollapsingGroupCollapsedGroupedColumns.ChangingChangedSortedColumns.ChangingChangedTableControlQueryAllowSortColumnSortedColumns.ChangingChangedTableControlQueryAllowSortColumnRecordFilters.ChangingChangedGridExcelFilter.RecordFiltersItemChangingChangedRecordFilters.ChangingChangedGridExcelFilter.RecordFiltersItemChangingChangedTableControlCurrentCellStartEditingTableControlCurrentCellEditingCompleteTableControlCurrentCellValidatingTableControlCurrentCellStartEditingTableControlCurrentCellEditingCompleteTableControlCurrentCellValidating