Member 12794650 Ответов: 3

Хии... Я хочу выбрать строку представления таблицы данных, нажав на строку представления таблицы данных anather, когда ID присутствует в обеих таблицах, так что же я могу сделать ?


у меня есть два gridview на одной странице, когда я выбираю 1-ю строку gridview, в то время как я хочу выбрать 2-ю строку gridview, когда один и тот же идентификатор присутствует в обеих таблицах

Что я уже пробовал:

if (e. RowIndex < 0)
{
вернуть;
}
показатель инт = е.Параметр rowindex;
dataGridView2.Строки[индекс].Selected = true;


но в этом случае одна за другой все строки выбираются во 2-м GridView, когда я нажимаю на 1-й gridview, я хочу, чтобы только одна была выбрана для perticular id во 2-м gridview.

3 Ответов

Рейтинг:
2

Karthik_Mahalingam

см. этот пример

private void Form1_Load(object sender, EventArgs e)
       {
           DataTable dt = new DataTable();
           dt.Columns.Add("Id");
           dt.Columns.Add("Name");
           dt.Rows.Add(1, "one");
           dt.Rows.Add(2, "two");
           dt.Rows.Add(3, "three");

           dataGridView1.DataSource = dt;
           dataGridView2.DataSource = dt;
           dataGridView1.RowHeaderMouseClick +=dataGridView1_RowHeaderMouseClick;

       }

       private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
       {
           string id = Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells["Id"].Value);
           foreach (DataGridViewRow row in dataGridView2.Rows)
           {
               if (row.Cells["Id"].Value.ToString() == id)
               {
                   row.Selected = true;
                   break;
               }

           }
       }


Примечание: я использовал RowHeaderMouseClick событие, вы должны использовать соответствующее.


Рейтинг:
2

Harshal Kale

Привет, Вы можете получить Id (A) из выбранного представления сетки (A) и найти ту же запись id (A) с другим представлением сетки(B)
Кроме того, вы должны убедиться, что оба идентификатора(A и B) должны быть одинаковыми.


Рейтинг:
1

Graeme_Grant

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

dataGrid.Rows[index].Selected = true;
Вот компактный способ сделать то, что вы хотите:
DataGrid.Rows.OfType<DataGridViewRow>().Where(x => (int)x.Cells["Id"].Value == pId).ToArray<DataGridViewRow>()[0].Selected = true;