powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Пользовательское изменения порядка рядов в таблице
5 сообщений из 5, страница 1 из 1
Пользовательское изменения порядка рядов в таблице
    #38308169
leon777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть программка .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 остается в БД, то еще что-то.
Столько долблюсь ничего не могу придумать.

Есть ли у кого-то идеи как реализовать эту задачу каким-то другим способом или стандартными средствами? Может алгоритм подскажете.

Заранее всем очч благодарен!!!
...
Рейтинг: 0 / 0
Пользовательское изменения порядка рядов в таблице
    #38308263
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leon777,

охренеть извращение

ещё раз подумайте и скажите как вам нужно отсортировать таблицу?
...
Рейтинг: 0 / 0
Пользовательское изменения порядка рядов в таблице
    #38308299
leon777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pation

Необходимо чтобы пользователь выбрал любой ряд нажал кнопочку "Вверх" и текущий ряд поменялся местами с ближайшим рядом сверху. Ну аналогично для продвижения вниз. Т.е сортировка - произвольная.
...
Рейтинг: 0 / 0
Пользовательское изменения порядка рядов в таблице
    #38308344
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leon777pation

Необходимо чтобы пользователь выбрал любой ряд нажал кнопочку "Вверх" и текущий ряд поменялся местами с ближайшим рядом сверху. Ну аналогично для продвижения вниз. Т.е сортировка - произвольная.

1. Грид делать несортируемым
2. Сортировать DataSource для грида (по полю ORDER_INDEX)
3. При изменении порядка, поменять местами значение ORDER_INDEX двух соседних айтемов
сохранить их
перезаполнить DataSource
...
Рейтинг: 0 / 0
Пользовательское изменения порядка рядов в таблице
    #38308639
leon777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pation

Описание звучит интересно, но...при перезаполнении датасета будут сбиваться текущяя позиция и открытые узлы группировки (таблица группируется по 3-м полям).
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Пользовательское изменения порядка рядов в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]