【问题标题】:Finding a cell in devexpress datagrid在 devexpress 数据网格中查找单元格
【发布时间】:2018-05-10 18:30:37
【问题描述】:

我是 DevExpress GridControl 的新手。 我需要在网格中找到一个特定的单元格,然后用它的值做一些事情。 请问我该怎么办?

在网格的Loaded 方法中,我尝试使用myGrid.FindRowByValue("ProductType","ABC"),,但总是给出一个负数。

谢谢。

【问题讨论】:

    标签: c# wpf devexpress gridcontrol


    【解决方案1】:

    这是你可以尝试的代码

    for (int i = 0; i < gridView1.DataRowCount; i++) {
        object b = gridView1.GetRowCellValue(i, "FieldName");
        if (b != null && b.Equals(<someValue>)){
            gridView1.FocusedRowHandle = i;
            return;
        }
    }
    

    您可以访问此链接了解更多详情。

    https://www.devexpress.com/Support/Center/Question/Details/Q132599/get-row-by-cell-value

    【讨论】:

      【解决方案2】:

      与 XtraGrid 不同,WPF 的 DXGrid 不提供 DataRowCount 属性 - 这就是我们建议检查 GridControl 的 ItemsSource 的原因。另一方面,我们的网格具有 VisibleRowCount 属性,这在某些情况下会很有用。

      要完成此任务,请手动迭代可见的网格行,如下所示。

      void MoveFocusToLast(GridControl grid, string fieldName, object value) {
          for (int i = grid.VisibleRowCount - 1; i >= 0; i--) {
              var handle = grid.GetRowHandleByVisibleIndex(i);
              var currentValue = grid.GetCellValue(handle, fieldName);
              if (currentValue != null && currentValue.Equals(value)) {
                  grid.View.FocusedRowHandle = handle;
                  return;
              }
          }
      }
      

      Grid 还提供了FindRowByValue 方法,它允许您 按特定单元格值查找一行。该方法返回的句柄 相应的行,您可以通过设置使该行可见 FocusedRowHandle 属性或调用 ScrollIntoView。我 已经准备了一个示例来演示这种方法。

      另请参阅:
      Traversing Rows
      Find Row
      Get RowHandle from a cell value

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多