Отношения между двумя датагридью по программам
В основном я хочу видеть данные внешнего ключа в другом сетевом представлении. Родительские данные отображаются в первом представлении данных и отображают дочерние данные во втором представлении данных. если щелкнуть 1-ую строку сетки, затем 2-я сетка показать дочернюю таблицу данных. У меня есть два стола, студент и предмет. студент ==stu_id, имя, ролл.
subject==sub_id, name, subject_code, stu_id. введите описание изображения здесьpic
1 ответ
Прежде всего, вы не предоставили нам какой-либо код.
Теперь я просто объясню вам, как это сделать (без реального кода, поскольку у меня нет вашего кода).
Это тихо, легко и не требует особой настройки. Единственное, что вам нужно сделать, это решить, когда вы хотите изменить данные в child
DataGridView. Когда вы решите, когда это сделать (например, по нажатию на ячейку), просто создайте событие в первом представлении данных и используйте RowFiltering
на втором. Это будет выглядеть так:
private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow row = dataGridView1.SelectedRows[0]; //Selecting only first selected row.
//Above code of getting row will not work if you have not set datagridview mode to full selection.
//If you do not want to you could get row like this
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
int CategoryIdOfSelectedOne = Convert.ToInt32(row["CategoryID"].Value);
(secondDGV.DataSource as DataTable).DefaultView.RowFilter = string.Format("CategoryID= '{0}'", CategoryIdOfSelectedOne);
}