排序后的过滤器/所选行无法正常工作

时间:2019-06-18 15:26:16

标签: c# winforms

我有一个显示文档列表的应用程序。单击列表记录时,您将在应用程序的右侧拥有所选文档的内容(根据随附的打印屏幕)。该列表可以按日期轻松过滤。一切正常。

但是,当用户在对数据进行排序后尝试选择一行时,就会出现FIRST问题。 Gridview选择在被排序之前位于单击索引处的行。

通过以下代码,我已经解决了该问题:

this.dTabCWoodHeadArodes.DefaultView.Sort = e.Condition;
this.dTabCWoodHeadArodes = this.dTabCWoodHeadArodes.DefaultView.ToTable(true);

现在排序有效,但排序后过滤器不起作用(列表保持不变)。

完整源代码:

private void c1TrueDBGridHead_AfterSort(object sender, C1.Win.C1TrueDBGrid.FilterEventArgs e)
        {
            this.dTabCWoodHeadArodes.DefaultView.Sort = e.Condition;
            this.dTabCWoodHeadArodes = this.dTabCWoodHeadArodes.DefaultView.ToTable(true);
            this.c1TrueDBGridHead.SelectedRows.Clear();
            if (this.c1TrueDBGridHead.RowCount > 0)
            {
                this.c1TrueDBGridHead.SelectedRows.Add(0);
                this.c1TrueDBGridHead.Row = 0;
            }
            this.c1TrueDBGridHead.Refresh();
        }

对我来说,这是一件有趣的事(令人沮丧),因为当我停用以下代码部分时:

this.dTabCWoodHeadArodes.DefaultView.Sort = e.Condition;
this.dTabCWoodHeadArodes = this.dTabCWoodHeadArodes.DefaultView.ToTable(true);

过滤器不起作用。

另一方面,当我停用时:

this.c1TrueDBGridHead.SelectedRows.Clear();
if (this.c1TrueDBGridHead.RowCount > 0)
{
    this.c1TrueDBGridHead.SelectedRows.Add(0);
    this.c1TrueDBGridHead.Row = 0;
}
this.c1TrueDBGridHead.Refresh();

过滤器工作正常,但排序后无法显示所选文档...

我现在不解决此问题...

enter image description here

0 个答案:

没有答案