在gridview自动过滤器行中添加自定义按钮

时间:2016-08-10 05:06:04

标签: c# winforms gridview devexpress autofilter

如何添加按钮[x]以清除自动过滤器,这样我们就不需要按删除或退格键清除过滤器。像这样的插图

img1

代码iam用于repositoryitemcombobox

   private void gridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)
    {
        if (gridView1.OptionsView.ShowAutoFilterRow == true)
        {

            for (int i = 0; i < gridView1.RowCount; i++)
            {

                  string code = gridView1.GetDataRow(i)["code"].ToString();
                    if (!repositoryItemComboBox1.Items.Contains(code))
                    {
                     repositoryItemComboBox1.Items.Add(code);
                    }                 
            }
            if (e.Column.FieldName == "genre" && view.IsFilterRow(e.RowHandle))
            {
                e.RepositoryItem = repositoryItemComboBox1;

            }

仅供参考:iam使用devexpress

2 个答案:

答案 0 :(得分:0)

它是devexpress&#39;网格视图,不是吗?我不知道这个解决方案是否符合您的需求,但您可以在网格附近插入普通按钮控件,并将answer on this site内的代码放入点击操作中。

编辑: 找到了您的问题的答案 - unfortunately it's not possible to add custom button to auto filter row

答案 1 :(得分:0)

(从我的脑海中,我认为这是针对WinForms控件的)

您需要有两个RepositoryItems,一个没有clear按钮,另一个有按钮(您可以通过RepositioryItem的Buttons属性添加按钮)。

您将RepositoryItem分配给相关列而不需要额外的按钮。

然后你需要处理GridView的CustomRowCellEditEventHandler。检查事件的e.RowHandle是否等于GridControl.AutoFilterRow,如果是,则使用clear按钮将e.RepositoryItem分配给RepositoryItem。

然后处理清除按钮RepositoryItem的ButtonClicked事件。