powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / XtraGrid + LINQ2SQL, обработка ошибок БД
11 сообщений из 36, страница 2 из 2
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38452725
Dmitry Gurianov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Progaи это в корне неверно. всё работает. надо проверять не так.

Прошу вас показать код, который решит данный простой сценарий:

1. Юзер добавляет новую запись, устанавливает ей поля
2. Юзер пытается перевестифокус на другую строку (чем вызывает сохранение изменений в БД)
3. Внутри БД сохранение этой записи происходит с любой на выбор ошибкой
4. Юзеру не удается перевести фокус и он видит сообщение об ошибке
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38452731
Dmitry Gurianov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, и заодно:
Dmitry Gurianovprivate void gvHourlyRate_BeforeLeaveRow(object sender, DevExpress.XtraGrid.Views.Base.RowAllowEventArgs e)
{
e.Allow = !gvHourlyRate.IsNewItemRow(e.RowHandle);
}

попробуйте этим сохранить фокус, если он уводится от новой записи.
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38452733
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry GurianovProgaРекомендую открыть для себя интерфейс IEditibleObject.

Я знаю интерфейс IEditibleObject. Давайте общаться с уважением, за*бал скульрушный пафос. Не считайте других за дебилов.

авторВторое добавлять строки не в грид, а в источник строки

В чем смысл этого?

автори третье, добавлять новую строку сразу при загрузки грида, а при редактировании, добавлять новую сразу без инсерта, надеюсь понятно о чём я.

конечно, нет. В чем смысл?

автори не надо использовать LINQ2SQL для гридов, лучше уж EF.

и опять же - с чего?
так по порядку, раздолбайство разрабов от девок всем известно, я им не раз уже писал. второе, чтобы от этого раздолбайства не зависить надо управлять не самим гридом, а только реагировать на события грида в источнике строк, тогда ты будешь не зависим от конкретного грида, я и телерик и компонентван, и чего только не попробывал.
Далее, не надо пользоваться их поделим newrow, это говно, я в него как-то давно вляпался, поковырялся и перестал использовать, поэтому делал свою реализацию, поэтому у меня фокус никуда не исчезает.
далее. у меня в beforeleave вообще вот так написано.
Код: c#
1.
2.
3.
4.
private void gridView3_BeforeLeaveRow(object sender, RowAllowEventArgs e)
        {
            e.Allow = _valid_flag_employeework;
        }


а флаг я меняю вот так
Код: c#
1.
2.
3.
4.
public void SetEmployeeWorkByPlanRowValidatingState(bool state)
        {
            _valid_flag_employeework = state;
        }


а это метод вызываю вот так
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38452736
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
public void OnEndValidateEmployeeWorkByPlan(object sender, object lst)
        {
            GridListErrorHelper.MarkErrorColumns(gridView3, lst as IEnumerable<GridListErrorHelper>, sender as ValidateRowEventArgs);
            SetEmployeeWorkByPlanRowValidatingState((sender as ValidateRowEventArgs).Valid);
        }
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38452741
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот этот метод уже вызывается из презентера
Код: c#
1.
2.
3.
4.
5.
void _view_ValidateEmployeeWorkColumns(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
        {
            object helper = Model.ValidateEmployee(_view.SelectedRecordEmployeeWork);
            _view.OnEndValidateEmployeeWorkByPlan(e, helper);
        }


а дальше самое интересное
Код: c#
1.
_view.ValidateEmployeeWorkColumns += _view_ValidateEmployeeWorkColumns;


и во вью вот так
Код: c#
1.
2.
3.
4.
private void gridView3_ValidateRow(object sender, ValidateRowEventArgs e)
        {
            OnValidateEmployeeWorkColumns(e);
        }
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38452755
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и дополнительно, чтобы было совсем понятно, я строку новую уже сразу имею в гриде, аля Access, с него собственно и переводил организацию, где используется вся эта каша. в WPF всё намного проще. рекомендую на будущее туда глядеть.
дополню, как только пользователь пытается изменить что-нибудь в новой строке, тут же добавляется новая, а фокус замечу, никуда не уходит
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38452766
Dmitry Gurianov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Progaи дополнительно, чтобы было совсем понятно, я строку новую уже сразу имею в гриде, аля Access, с него собственно и переводил организацию, где используется вся эта каша. в WPF всё намного проще. рекомендую на будущее туда глядеть.
дополню, как только пользователь пытается изменить что-нибудь в новой строке, тут же добавляется новая, а фокус замечу, никуда не уходит

ну вот с уводом фокуса от новой у них все через ж*пу, не работает. И обойти эту хрень - тоже костыли городить.
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38452996
Dmitry Gurianov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga, какие еще знаете достойные гриды, кроме XtraGrid? У меня все, я готов на тяжкие преступления (
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38453581
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Gurianov, telerik более менее. Всё остальное совсем плохо
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38453614
Dmitry Gurianov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgaDmitry Gurianov, telerik более менее. Всё остальное совсем плохо

Спасибо, им и занялся уже. Все равно надо знать.
...
Рейтинг: 0 / 0
XtraGrid + LINQ2SQL, обработка ошибок БД
    #38453616
Dmitry Gurianov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, они привели пример кода , решающего некоторые описанные проблемы. Поверхностно пробежался - тоже на костыль похоже, но сначала побьюсь с телериком, раз уж начал.
...
Рейтинг: 0 / 0
11 сообщений из 36, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / XtraGrid + LINQ2SQL, обработка ошибок БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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