ColumnView.GetDataRow(Int32) Method
Returns a DataRow object that represents the specified row.
Namespace: DevExpress.XtraGrid.Views.Base
Assembly: DevExpress.XtraGrid.v19.2.dll
Declaration
Parameters
Name | Type | Description |
---|---|---|
rowHandle | Int32 | An integer value representing the row handle. |
Returns
Type | Description |
---|---|
DataRow | A DataRow object representing the specified row. |
Remarks
If the View’s data source is a custom collection of objects, the GetDataRow method returns null (Nothing in Visual Basic). If the View’s data is supplied by a DataTable or DataView object, a DataRow object representing a specific row is returned.
The DataRow object allows you to access row values, row errors, delete rows, etc. Please refer to the DataRow class description for details.
To get objects which correspond to grid rows regardless of the data source’s type, use the ColumnView.GetRow method.
For group rows, the GetDataRow function returns an object that represents the first data row in the associated group.
See the Accessing Rows in Code. Row Handles section in the Rows topic to learn more.
Note
Detail pattern Views do not contain data and they are never displayed within XtraGrid. So, the GetDataRow member must not be invoked for these Views. The GetDataRow 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.
- GridControl.MainView - returns the top most View in a grid;
- GridControl.FocusedView - returns the focused View;
- GridControl.DefaultView - returns the currently maximized View;
- the sender parameter of View specific events;
- GridView.GetDetailView - returns a detail clone View for a specific master row.
Example
This example demonstrates how to obtain selected rows, and then change values of their “Discounted” column cells.
If Grid data is sorted or filtered, changes made to one Grid row can make other rows change their order and, as a result, their row handles. For that reason you cannot access selected rows by their handles and process these rows right away. Instead, pass row handles retrieved by ColumnView.GetSelectedRows method to the ColumnView.GetDataRow
method. This allows you to access underlying data source objects (in this example, DataRows), save them to an array, and safely change their values afterwards.
Each row modification forces the Grid View to update itself. Enclose your code with the BaseView.BeginUpdate and BaseView.EndUpdate method calls to avoid excessive updates. Refer to the Batch Modifications Overview document for details.
ArrayList rows = new ArrayList();
// Add the selected rows to the list.
Int32[] selectedRowHandles = gridView1.GetSelectedRows();
for (int i = 0; i < selectedRowHandles.Length; i++) {
int selectedRowHandle = selectedRowHandles[i];
if (selectedRowHandle >= 0)
rows.Add(gridView1.GetDataRow(selectedRowHandle));
}
try {
gridView1.BeginUpdate();
for (int i = 0; i < rows.Count; i++) {
DataRow row = rows[i] as DataRow;
// Change the field value.
row["Discontinued"] = true;
}
}
finally {
gridView1.EndUpdate();
}
Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the GetDataRow(Int32) method.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.