Отношения между двумя датагридью по программам - PullRequest
0 голосов
/ 20 ноября 2018

В основном я хочу видеть данные внешнего ключа в другом сетевом представлении. Родительские данные отображаются в первом представлении данных, а дочерние данные - во втором. если щелкнуть 1-ую строку сетки, то 2-я сетка покажет дочернюю таблицу данных. У меня есть два стола, студент и предмет. студент == stu_id, имя, ролл. subject == sub_id, name, subject_code, stu_id. введите описание изображения здесь pic

1 Ответ

0 голосов
/ 21 ноября 2018

Прежде всего, вы не предоставили нам никакого кода.

Теперь я просто объясню вам, как это сделать (без фактического кода, поскольку у меня нет вашего кода).

Это тихо, легко и не требует особых настроек.Единственное, что вам нужно сделать, это решить, КОГДА вы хотите изменить данные в 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);
}
...