/// <summary> /// Move a group of rows up or down in the grid & refresh display /// </summary> /// <param name="selectedRows"></param> /// <param name="rowDelta">Pos or neg number of rows to move the selected rows</param> void MoveRows( int[] selectedRows, int rowDelta) { if (rowDelta == 0) { return; } int lastSri = selectedRows.Length - 1; if (rowDelta < 0) // moving rows up - start with first row & work down { for (int rai = 0; rai <= lastSri; rai++) { int sri = selectedRows[rai]; DataTableUtil.MoveRow(DataTable, sri, sri + rowDelta); } } else // move rows down - start with last row & work up { for (int rai = lastSri; rai >= 0; rai--) { int sri = selectedRows[rai]; DataTableUtil.MoveRow(DataTable, sri, sri + rowDelta); } } int startRow = selectedRows[0] + rowDelta; int endRow = selectedRows[lastSri] + rowDelta; GridView.SelectRows(startRow, endRow); GridView.MakeRowVisible(startRow, true); GridView.MakeRowVisible(endRow, true); TableGrid.RefreshDataSource(); return; }