Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Редактирование строки  [new]
hum_i
Member

Откуда:
Сообщений: 568
Добрый день! Не подскажите, как можно программно осуществить переход из записи DataGridView в другую форму для редактирования этой записи?
23 авг 07, 16:33    [4567616]     Ответить | Цитировать Сообщить модератору
 Re: Редактирование строки  [new]
Denis Bahiya
Member

Откуда: Саратов
Сообщений: 14
Вопрос не понятен.
Интересует как получить строку из DataGrigView? Или....
26 авг 07, 22:32    [4576912]     Ответить | Цитировать Сообщить модератору
 Re: Редактирование строки  [new]
hum_i
Member

Откуда:
Сообщений: 568
Да из DataGridView
27 авг 07, 09:48    [4577382]     Ответить | Цитировать Сообщить модератору
 Re: Редактирование строки  [new]
Витал
Member

Откуда: Россия, Санкт-Петербург
Сообщений: 2021
А источник данных для грида что, таблица или BindingSource?
Если второе, то BindingSource1.Current = текущая запись типа DataRowview. Ее и можно передать в качестве параметра в форму редактирования!
27 авг 07, 10:05    [4577484]     Ответить | Цитировать Сообщить модератору
 Re: Редактирование строки  [new]
hum_i
Member

Откуда:
Сообщений: 568
Источником служит TableNameTableAdapter из DataSet. В общем создала не программно а с помощью Add new Data Source в VB 2005 один DataSet. В нем через Edit DataSet with designer соединила все таблицы между собой. Для каждой таблицы автоматически был создан TableAdapter. После я создала одну форму с textbox-ами и combobox-ами для добавления к примеру заказа. В ней я могу добавить новый заказ и сохранить его. И есть форма для просмотра всех заказов с DataGridView. Вот мне и нужно вытаскивать строку из DataGridView и открыть ее в другой форме для редактирования (форма для добавления нового заказа).
27 авг 07, 10:55    [4577838]     Ответить | Цитировать Сообщить модератору
 Re: Редактирование строки  [new]
Витал
Member

Откуда: Россия, Санкт-Петербург
Сообщений: 2021
автор
И есть форма для просмотра всех заказов с DataGridView. Вот мне и нужно вытаскивать строку из DataGridView и открыть ее в другой форме для редактирования (форма для добавления нового заказа).

Если все создавалось "автоматом", то автоматом же и создался BindingSource - источник данных для DataGridView. Надо посмотреть в свойствах DataGridView его имя и при открытии формы редактирования, ссылаясь на этот BindingSource, получить текущую строку.
27 авг 07, 11:20    [4578068]     Ответить | Цитировать Сообщить модератору
 Re: Редактирование строки  [new]
hum_i
Member

Откуда:
Сообщений: 568
Я так понимаю это с помощью Button-а делается. Ну вот вроде все правильно, но когда ставишь точку после переменной detailForm (8 строка) метод EditDetai, а если написать самому то выдает ошибку: 'EditDetail' is not member of 'WinApplication.MyDetailForm'. Не подскажите в чем тут дело?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles--1 Button1.Click--2
Using detailForm As MyDetailForm()--3
Dim currentDetailRowView As DataRowView = CType(Me.MyTableOrderBindingSource.Current,--4 DataRowView)--5
Dim currentDetailRow As MyDataSet.Order_DetailRow = CType(currentDetailRowView.Row,--6 MyDataSet.Order_DetailRow)--7
detailForm.EditDetail(currentDetailRow)--8
End Using--9
30 авг 07, 09:25    [4595475]     Ответить | Цитировать Сообщить модератору
 Re: Редактирование строки  [new]
Витал
Member

Откуда: Россия, Санкт-Петербург
Сообщений: 2021
hum_i
Я так понимаю это с помощью Button-а делается. Ну вот вроде все правильно, но когда ставишь точку после переменной detailForm (8 строка) метод EditDetai, а если написать самому то выдает ошибку: 'EditDetail' is not member of 'WinApplication.MyDetailForm'. Не подскажите в чем тут дело?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles--1 Button1.Click--2
Using detailForm As MyDetailForm()--3
Dim currentDetailRowView As DataRowView = CType(Me.MyTableOrderBindingSource.Current,--4 DataRowView)--5
Dim currentDetailRow As MyDataSet.Order_DetailRow = CType(currentDetailRowView.Row,--6 MyDataSet.Order_DetailRow)--7
detailForm.EditDetail(currentDetailRow)--8
End Using--9


EditDetail - метод объявлен как Public?
С текущей записью можно и проще:
detailForm.EditDetail(CType(Me.MyTableOrderBindingSource.Current, DataRowView).Row)
Но я лично предпочитаю объявить в форме для редактирования паблик переменную, которой при создании формы присваиваю ссылку на текущую строку. На событие загрузка формы вешаю процедуру (или можно прямо в данной процедуре) записи данных из DataRow в контролы. Затем при сохранении - запись из контролов в DataRow + EndEdit, при отмене - просто закрытие формы...
30 авг 07, 11:24    [4596396]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить