GridView.GetRowCellValue(Int32, GridColumn) Method

Returns the specified cell's value in the current View.

Namespace: DevExpress.XtraGrid.Views.Grid

Assembly: DevExpress.XtraGrid.v20.2.dll

Declaration

public override object GetRowCellValue(
    int rowHandle,
    GridColumn column
)
Public Overrides Function GetRowCellValue(
    rowHandle As Integer,
    column As GridColumn
) As Object

Parameters

Name Type Description
rowHandle Int32

An integer value representing a handle of the row in which the desired cell resides. Row handles are not data source indexes, see the Accessing Rows in Code. Row Handles section of the "Rows" article for more information.

column GridColumn

A GridColumn object or descendant representing the column that contains the desired cell.

Returns

Type Description
Object

An object that is the specified cell's value.

null (Nothing in Visual Basic) if the specified cell is not found.

In Instant Feedback Mode, an invalid "Non-loaded Value" is immediately returned if the requested cell is not currently loaded.

Remarks

This method overrides the ColumnView.GetRowCellValue method to retrieve requested values for the auto filter row.

For more information, see ColumnView.GetRowCellValue.

NOTE

In Instant Feedback Mode, this GetRowCellValue method has limitations. It returns a correct value only if the target row has been loaded. Otherwise, it returns a "Non-loaded Value". You can check to see whether or not the returned value is the "Non-loaded Value" by calling the static BaseEdit.IsNotLoadedValue method.

If you require this value right away (e.g., on a Custom Draw event), skip this value by adding a code, similar to the following:

private void gridView1_CustomDrawGroupRow(object sender, DevExpress.XtraGrid.Views.Base.RowObjectCustomDrawEventArgs e) {
    GridView view = sender as GridView;
    int index = view.GetDataRowHandleByGroupRowHandle(e.RowHandle);
    var cellValue = view.GetRowCellValue(index, "Mode");
    if (BaseEdit.IsNotLoadedValue(cellValue)) {
        ((GridGroupRowInfo)e.Info).GroupText = "Loading...";
    }
    else {
        int mode = (int)cellValue;
        ((GridGroupRowInfo)e.Info).GroupText += "custom " + mode;
    }
}
NOTE

Detail pattern Views do not contain data and they are never displayed within XtraGrid. So, the GetRowCellValue member must not be invoked for these Views. The GetRowCellValue member can only be used with real Views that are displayed within the Grid Control. The real Views with which an end-user interacts at runtime can be accessed using the following methods.

Examples

The code sample below iterates through grid records and reduces the "Price" column values by 10 percent.

private void UpdatePrice(DevExpress.XtraGrid.Views.Base.ColumnView View) {
   // Obtain the Price column. 
   DevExpress.XtraGrid.Columns.GridColumn col = View.Columns.ColumnByFieldName("Price");
   if (col == null) return;
   View.BeginSort();
   try {
      // Obtain the number of data rows. 
      int dataRowCount = View.DataRowCount;
      // Traverse data rows and change the Price field values. 
      for (int i = 0; i < dataRowCount; i++) {
         object cellValue = View.GetRowCellValue(i, col);
         double newValue = Convert.ToDouble(cellValue) * 0.9;
         View.SetRowCellValue(i, col, newValue);
      }
   } finally { View.EndSort(); }
}
See Also