Поиск ячейки в devexpress datagrid

Я новичок в DevExpress GridControl. Мне нужно найти определенную ячейку в сетке, а затем что-то сделать с ее значением. Как мне это сделать, пожалуйста?

В методе сетки Loaded я пытался использовать myGrid.FindRowByValue("ProductType","ABC"),, но всегда давал отрицательное число.

Спасибо.


person Sam    schedule 09.05.2018    source источник


Ответы (2)


Вот код, который вы можете попробовать

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

person Community    schedule 10.05.2018

В отличие от XtraGrid, DXGrid для WPF не предоставляет свойство DataRowCount, поэтому мы предложили проверить ItemsSource GridControl. С другой стороны, наша сетка имеет свойство 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. Я подготовил образец, демонстрирующий этот подход.

См. также:
Обход строк
Найти строку
Получить RowHandle из значения ячейки

person Niranjan Singh    schedule 10.05.2018