powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / найти строку в наборе данных, ассоциированную с текущей строкой грида
12 сообщений из 12, страница 1 из 1
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699802
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаю что, но мне явно тут что-то не нравится
особенно, если будет в гиде сортировка
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
            if (DGV_Columns.Rows[e.RowIndex] != null)
            {
                if ((DataRowView)DGV_Columns.Rows[e.RowIndex].DataBoundItem != null)
                {
                    DataRow row = ((DataRowView)DGV_Columns.Rows[e.RowIndex].DataBoundItem).Row;
                    MessageBox.Show(row["ref_tbl_id"].ToString());
                }
            }



опыта очень мало
надеюсь на понимание
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699807
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще вопрос

На каком событии грида лучше всего проверить/дозаполнить данные строки?
Пример: вставляю строку detail - при записи надо вставить main_table_id
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699810
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
грид используйте только для отображения. можно его весь обновлять, можно только какую-то одну строку, но, дозаполнять какие-то "main_table_id" в нем не надо
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699828
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как надо? В мс есть примеры отображения данных мастер-деталь
А изменения не нашёл
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699833
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxА как надо? В мс есть примеры отображения данных мастер-деталь
А изменения не нашёл

1) есть событие, связанное с редактированием/открытием диалога для редактирования
2) там можете получить MasterId + данные для новой записи и позицию в гриде
3) на основе этого сформируете параметры команды для InsertCommand
4) эта команда вернет вам, например, Id новой записи
5) запросите DTO этой новой записи
6) по позиции в гриде присвоите туда новый DTO

и еще для коллекций, которые биндите к гриду, используете BindingSourceList, а алементы его пусть реализуют INotifyPropertyChanged

как-то так в основном
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699834
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. сам грид - только отображение и обработка всяких кликов мышкой и клавиш
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699835
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и стандартный грид сильно убог. лучше сразу смотрите в сторону сторонних компонентов, типа DevExpress и т.п.
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699836
love_bach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxне знаю что, но мне явно тут что-то не нравится
особенно, если будет в гиде сортировка
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
            if (DGV_Columns.Rows[e.RowIndex] != null)
            {
                if ((DataRowView)DGV_Columns.Rows[e.RowIndex].DataBoundItem != null)
                {
                    DataRow row = ((DataRowView)DGV_Columns.Rows[e.RowIndex].DataBoundItem).Row;
                    MessageBox.Show(row["ref_tbl_id"].ToString());
                }
            }



опыта очень мало
надеюсь на понимание

там есть какой-то контрол, кажется BindingSource, лучше через него это делать. У него есть свойство Current. А так как Вы хотите, тоже можно, но это привязка к гриду, а этого не надо
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699887
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
andreymxнайти строку в наборе данных, ассоциированную с текущей строкой грида

Если связка данных с гридом сделано правильно, то через bindingsource.

Код: c#
1.
DataRowView  dr =  myBindingSource.Current as DataRowView;
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699888
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
andreymxи еще вопрос

На каком событии грида лучше всего проверить/дозаполнить данные строки?
Пример: вставляю строку detail - при записи надо вставить main_table_id
Оно автоматически вставится, если связь правильно сделана, через Relation
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39699889
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
love_bachт.е. сам грид - только отображение и обработка всяких кликов мышкой и клавиш
Неправда. У него есть обработчики куча других событий

love_bachи стандартный грид сильно убог. лучше сразу смотрите в сторону сторонних компонентов, типа DevExpress и т.п.
Не совсем правда. Очень мощный контрол. Ни разу не понадобилось что-то, что выше его возможностей.

Всем , кто не читал , рекомендую прекрасную статью о DataGridView . Пусть она и старая, но принципиально ничего в нем не поменялось.
Там же описывается и зачем нужен BindingSource.
Есть вторая часть статьи

love_bachтам есть какой-то контрол, кажется BindingSource
Неправда. BindingSource не контрол, а "мостик" между DataGridView и DataTable

love_bach У него есть свойство Current.
А вот это сущая правда. Причем это одно из важнейших его свойств
...
Рейтинг: 0 / 0
найти строку в наборе данных, ассоциированную с текущей строкой грида
    #39700109
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы при ошибке при корректировке строки грида не пропадали измененные данные текущей строки и чтобы редактируемая строка не пропадала/оставалась на месте
так нормально в первом приближении?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
        private void DGV_DataError(object sender, DataGridViewDataErrorEventArgs e)
        {
            DataGridView dgv = (DataGridView)sender;
            if (dgv.IsCurrentRowDirty)
            {
                MessageBox.Show(e.Exception.Message);
                e.Cancel = true;
            }
        }
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / найти строку в наборе данных, ассоциированную с текущей строкой грида
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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