Back to Devexpress

ColumnView.SelectedRowsCount Property

windowsforms-devexpress-dot-xtragrid-dot-views-dot-base-dot-columnview-ef183a62.md

latest9.1 KB
Original Source

ColumnView.SelectedRowsCount Property

Gets the number of selected rows (cards).

Namespace : DevExpress.XtraGrid.Views.Base

Assembly : DevExpress.XtraGrid.v25.2.dll

NuGet Packages : DevExpress.Win.Grid, DevExpress.Win.Navigation

Declaration

csharp
[Browsable(false)]
public virtual int SelectedRowsCount { get; }
vb
<Browsable(False)>
Public Overridable ReadOnly Property SelectedRowsCount As Integer

Property Value

TypeDescription
Int32

An integer value indicating the number of selected rows (cards).

|

Remarks

If a single row (card) is selected, the SelectedRowsCount property returns 1 and the selected row (card) matches the focused row (card). Thus, you can access the selected row’s handle using the ColumnView.FocusedRowHandle property. If the selected row is invalid, this method returns 0. Use the GridView.IsValidRowHandle method to identify whether the row is valid.

If several rows (cards) are selected, use the ColumnView.GetSelectedRows method to obtain the handles of the selected rows (cards).

Note that multiple row selection is allowed only when the ColumnViewOptionsSelection.MultiSelect property is set to true.

Note

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

Example

This example obtains selected rows and modifies their values in the “Discounted” column.

If 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 this reason, you cannot access selected rows by their handles and process these rows right away. Instead, pass row handles retrieved by the 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. The example encloses the code within BaseView.BeginUpdate and BaseView.EndUpdate method calls to avoid excessive updates.

csharp
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();
}
vb
Dim Rows As New ArrayList()

' Add the selected rows to the list.
Dim selectedRowHandles As Int32() = GridView1.GetSelectedRows()
Dim I As Integer
For I = 0 To selectedRowHandles.Length - 1
    Dim selectedRowHandle As Int32 = selectedRowHandles(I)
    If (selectedRowHandle >= 0) Then
        Rows.Add(GridView1.GetDataRow(selectedRowHandle))
    End If
Next
Try
    GridView1.BeginUpdate()
    For I = 0 To Rows.Count - 1
        Dim Row As DataRow = CType(Rows(I), DataRow)
        ' Change the field value.
        Row("Discontinued") = True
    Next
Finally
    GridView1.EndUpdate()
End Try

Run Demo: Obtain Selected Rows

The following code snippets (auto-collected from DevExpress Examples) contain references to the SelectedRowsCount property.

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.

report-server-how-to-manage-scheduled-jobs-from-a-windows-forms-application/CS/ScheduledTasksAPIClientDemo/MainForm.cs#L69

csharp
private void scheduledJobsView_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) {
    showScheduledJobButton.Enabled = scheduledJobsView.SelectedRowsCount > 0;
    showScheduledJobResultsButton.Enabled = scheduledJobsView.SelectedRowsCount > 0;

winforms-grid-copy-cells-in-biff8-format-using-excel-export-api/CS/gridCopyToClipboardExample/CopyToClipboardHelper.cs#L168

csharp
this.view = view;
if(this.view.SelectedRowsCount < 1) {
    MessageBox.Show("Selection is empty", "", MessageBoxButtons.OK, MessageBoxIcon.Error);

report-server-how-to-manage-scheduled-jobs-from-a-windows-forms-application/VB/ScheduledTasksAPIClientDemo/MainForm.vb#L69

vb
Private Sub scheduledJobsView_FocusedRowChanged(ByVal sender As Object, ByVal e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles scheduledJobsView.FocusedRowChanged
    showScheduledJobButton.Enabled = scheduledJobsView.SelectedRowsCount > 0
    showScheduledJobResultsButton.Enabled = scheduledJobsView.SelectedRowsCount > 0

winforms-grid-copy-cells-in-biff8-format-using-excel-export-api/VB/gridCopyToClipboardExample/CopyToClipboardHelper.vb#L159

vb
Me.view = view
If Me.view.SelectedRowsCount < 1 Then
    MessageBox.Show("Selection is empty", "", MessageBoxButtons.OK, MessageBoxIcon.Error)

See Also

SelectRow(Int32)

UnselectRow(Int32)

SelectAll()

ClearSelection()

Multiple Row and Cell Selection

ColumnView Class

ColumnView Members

DevExpress.XtraGrid.Views.Base Namespace