我是DevExpress GridControl的新手。 我需要在网格中找到一个特定的单元格,然后用它的值来做一些事情。 我该怎么办呢?
在网格的Loaded
方法中,我尝试使用myGrid.FindRowByValue("ProductType","ABC"),
,但总是给出一个负数。
感谢。
答案 0 :(得分:0)
以下是您可以尝试的代码
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
答案 1 :(得分:0)
与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