官方示例:Aspose.Cells-for-.NET-master的Examples_GridDesktop里面Filtering Data里面的Auto Filter代码: // ExStart:AutoFilter
// Enable GridDesktop’s auto-filter.
gridDesktop1.Worksheets[0].RowFilter.EnableAutoFilter = true;
// Set the header row.
gridDesktop1.Worksheets[0].RowFilter.HeaderRow = 0;
gridDesktop1.Worksheets[0].RefreshFilter();
// ExEnd:AutoFilter
只显示了第一列为自动筛选,怎么让所有的数据列都显示为自动筛选.
忘记放图了,补上.自动数据过滤.jpg (138.2 KB)
@hudaming
是个bug我们将尽快修复,已经记录了问题单子
Issue ID(s): CELLSNET-54090
这个确实是个bug,但是我已经找到替代的办法了,用AddAutoFilter解决: //数据行数
int totalRows = gridDesktop1.Worksheets[0].Cells.MaxDataRow ;
//数据列数
int maxColumns = gridDesktop1.Worksheets[0].Cells.MaxDataColumn ;
// ExStart:AutoFilter
// Enable GridDesktop’s auto-filter.
gridDesktop1.Worksheets[0].AddAutoFilter(0,0, maxColumns);
// gridDesktop1.Worksheets[0].RowFilter.EnableAutoFilter = true;
// Set the header row.
gridDesktop1.Worksheets[0].RowFilter.HeaderRow = 0;
gridDesktop1.Worksheets[0].RefreshFilter();
// ExEnd:AutoFilter
但是现在我有办法关掉自动筛选的功能吗?我的意思是只需要控件显示一个下拉箭头.筛选的列表我自己通过CellClick弹出一个窗体来做.
@hudaming
可以这么写,要把开始列和结束列加上去,我们的例子里的代码有点问题,我已经修改了github上面的例子代码了
// ExStart:AutoFilter
// Enable GridDesktop's auto-filter.
gridDesktop1.Worksheets[0].RowFilter.EnableAutoFilter = true;
// Set the header row. and the start column and the end column
gridDesktop1.Worksheets[0].RowFilter.StartCol = 0;
gridDesktop1.Worksheets[0].RowFilter.EndCol = 5;
gridDesktop1.Worksheets[0].RowFilter.HeaderRow = 0;
gridDesktop1.Worksheets[0].RefreshFilter();
@hudaming,
很高兴知道使用更新的代码段现在可以解决您的问题。 您需要设置 start_column 和 end_column 才能使过滤器正常工作。