|
Пользовательское изменения порядка рядов в таблице
|
|||
---|---|---|---|
#18+
Есть программка .Net WinForms + DevExpress + Oracle. Необходимо в обычной таблице (DevExpress GridControl) дать возможность пользователю менять порядок рядов (rows). Казалось бы все просто. Ввел в таблицу поле ORDER_INDEX и по нажатик копочек вверх/вниз меняю порядок строк: GridView view = (GridView)gridControl1.DefaultView; int currRowHandle = view.FocusedRowHandle; int prevRowHandle = currRowHandle - 1; decimal prevOrderIdx = (decimal)view.GetRowCellValue(prevRowHandle, view.Columns["ORDER_INDEX"])); decimal currOrderIdx = (decimal)view.GetRowCellValue(currRowHandle, view.Columns["ORDER_INDEX"])); DataRow prevRow = view.GetDataRow(prevRowHandle); DataRow currRow = view.GetDataRow(focusedRowHandle); prevRow["ORDER_INDEX"] = decimal.MaxValue; this.MyTableAdapter.Adapter.Update(this.dataSet1); this.dataSet1.AcceptChanges(); currRow["ORDER_INDEX"] = prevOrderIdx; this.MyTableAdapter.Adapter.Update(this.dataSet1); this.dataSet1.AcceptChanges(); prevRow["ORDER_INDEX"] = currOrderIdx; this.MyTableAdapter.Adapter.Update(this.dataSet1); this.dataSet1.AcceptChanges(); Использую промежуточное значение decimal.MaxValue, т.к. на ORDER_INDEX в БД наложен UK. Алгоритм не пашет. Постоянно ошибки: то decimal.MaxValue остается в БД, то еще что-то. Столько долблюсь ничего не могу придумать. Есть ли у кого-то идеи как реализовать эту задачу каким-то другим способом или стандартными средствами? Может алгоритм подскажете. Заранее всем очч благодарен!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 13:45 |
|
Пользовательское изменения порядка рядов в таблице
|
|||
---|---|---|---|
#18+
leon777, охренеть извращение ещё раз подумайте и скажите как вам нужно отсортировать таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 14:41 |
|
Пользовательское изменения порядка рядов в таблице
|
|||
---|---|---|---|
#18+
pation Необходимо чтобы пользователь выбрал любой ряд нажал кнопочку "Вверх" и текущий ряд поменялся местами с ближайшим рядом сверху. Ну аналогично для продвижения вниз. Т.е сортировка - произвольная. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 15:14 |
|
Пользовательское изменения порядка рядов в таблице
|
|||
---|---|---|---|
#18+
leon777pation Необходимо чтобы пользователь выбрал любой ряд нажал кнопочку "Вверх" и текущий ряд поменялся местами с ближайшим рядом сверху. Ну аналогично для продвижения вниз. Т.е сортировка - произвольная. 1. Грид делать несортируемым 2. Сортировать DataSource для грида (по полю ORDER_INDEX) 3. При изменении порядка, поменять местами значение ORDER_INDEX двух соседних айтемов сохранить их перезаполнить DataSource ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 15:34 |
|
|
start [/forum/topic.php?fid=20&msg=38308169&tid=1404448]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
157ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 255ms |
0 / 0 |