c# - 排序后的筛选器/选定行无法正常工作
问题描述
我有一个显示文档列表的应用程序。当您单击列表记录时,您在应用程序的右侧有所选文档的内容(根据随附的打印屏幕)。该列表可以很容易地按日期过滤。一切正常。
但是当用户在对数据进行排序后尝试选择一行时,就会出现第一个问题。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();
过滤器工作正常,但排序后显示选定的文档不起作用......
我现在不知道怎么解决...
解决方案
推荐阅读
- c# - Visual Studio Forms:有时,选择数据网格单元格不会将单元格的 Selected 属性设置为 true?
- jquery - 为什么在这种情况下 toggleClass 不起作用?
- unreal-engine4 - 虚幻引擎 - 手电筒在 180 度旋转时变暗
- aes - 一个h.264派生流协议的询问
- python - 使用列表格式的数据创建查询
- assembly - Understanding WORD PTR
- ios - 通过不同的视图控制器使用 Realm 时出现 RLMException
- node.js - 快递路线导致404
- hyperlink - 屏蔽列值上的 UI 网格超链接
- batch-file - 批处理文件 - 选择,缩进提示