自动筛选功能,只显示了第一列为自动筛选

官方示例: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();

对,这样也可以,这个bug其实也不算bug了

@hudaming,

很高兴知道使用更新的代码段现在可以解决您的问题。 您需要设置 start_column 和 end_column 才能使过滤器正常工作。