C# 如何使用DevExpress查找栏搜索但不过滤网格视图表?
我有一个包含大量十六进制数据的网格控件,我希望能够使用提供的查找搜索栏在表中搜索特定地址。但是,我不希望它过滤掉顶部图像中显示的所有数据。相反,我只想向下滚动到该值,而不进行任何过滤(下图)。我一直在使用Grid Viewer对象下的一些选项Find properties,但它们似乎都不适用于我当前的情况。是否有方法使用DevExpress查找栏执行此操作,或者是否需要使用其他控件?如果是这样,如何才能做到这一点?谢谢请评论更多信息,我将编辑问题C# 如何使用DevExpress查找栏搜索但不过滤网格视图表?,c#,.net,winforms,devexpress,C#,.net,Winforms,Devexpress,我有一个包含大量十六进制数据的网格控件,我希望能够使用提供的查找搜索栏在表中搜索特定地址。但是,我不希望它过滤掉顶部图像中显示的所有数据。相反,我只想向下滚动到该值,而不进行任何过滤(下图)。我一直在使用Grid Viewer对象下的一些选项Find properties,但它们似乎都不适用于我当前的情况。是否有方法使用DevExpress查找栏执行此操作,或者是否需要使用其他控件?如果是这样,如何才能做到这一点?谢谢请评论更多信息,我将编辑问题 我对这个问题的解决方法如下 从选项查找中禁用
我对这个问题的解决方法如下
- 从选项查找中禁用查找、清除和关闭按钮
- 为GridView对象创建以下CustomRowFilter事件处理程序。(这可以通过在每次尝试筛选时将handled属性设置为true来防止筛选表。)
- 创建一个自定义搜索按钮,在找到FindFilterText中包含的数据所在的行后,该按钮将更改当前关注的行
private void gridViewDataViewer_CustomRowFilter(object sender, DevExpress.XtraGrid.Views.Base.RowFilterEventArgs e) { e.Handled = true; e.Visible = true; } private void searchButton_Click(object sender, EventArgs e) { int rowHandle = gridViewDataViewer.LocateByValue("Column Name", gridViewDataViewer.FindFilterText); gridViewDataViewer.FocusedRowHandle = gridViewDataViewer.GetVisibleRowHandle(rowHandle); }
CustomRowFilter
防止网格过滤,并使用ColumnFilterChanged
聚焦包含搜索值的行:
private void gridView1_CustomRowFilter(object sender, DevExpress.XtraGrid.Views.Base.RowFilterEventArgs e)
{
e.Handled = true;
e.Visible = true;
}
private void gridView1_ColumnFilterChanged(object sender, EventArgs e)
{
for (int i = 0; i < gridView1.DataRowCount; i++)
{
object b = gridView1.GetRowCellValue(i, "Address");
if (b != null && b.ToString().Contains(gridView1.FindFilterText))
{
gridView1.FocusedRowHandle = i;
return;
}
}
}
private void gridview 1_CustomRowFilter(对象发送者,DevExpress.XtraGrid.Views.Base.RowFilterEventArgs e)
{
e、 已处理=正确;
e、 可见=真实;
}
私有void gridView1\u ColumnFilterChanged(对象发送方,事件参数e)
{
对于(int i=0;i
干得好!我花了两个小时试图找到一个解决方案,最后我带着一个几乎相似的解决方案离开了这里,找到了你的解决方案。@AbdellahOUMGHAR哇!我感谢你花那么多时间来帮助我!谢谢朋友!听到这个消息我很高兴,也谢谢你:)