2017-01-18 10 views
0

는 내가 가지고있다 :DataTable의 DataRow에 "첨부"된 DataGridView에서 DataGridViewRow를 찾는 방법은 무엇입니까? 내 예에서

DataTable dt = SomeMethodThatFillsDataTable(); 
DataGridView dgv = new DataGridView; 
dgv.DataSource = dt; 

는 지금은 "선택"의 DataTable에서 일부 데이터 행과이 작업을 수행하는 방법에 어떤 IDEE에게

DataRow[] foundRows = dt.Select("someColumn = someTerm"); 

foreach (DataRow row in foundRows)  
{  
    DataGridViewRow dgvRow = // here i would like to get acces to DataGridViewRow "attached" to row  
    dgvRow.DefaultCellStyle.BackColor = Color.Red;  
} 

DataGridView에 그것을 강조하고 싶습니다? 어쨌든 가능합니까?

+0

를 사용할 수 있습니다. 당신은 cellformating 이벤트를 사용할 수 있습니다.이 –

+0

이 DataTable은 그리드의 소스입니다. –

+0

이 DataTable은 눈금의 원본입니다. 내가 cellformating 싶지 않아. 확실하지는 않지만 셀 형성은 포맷팅 조건을 충족하는 각 셀의 형식을 지정합니다. DataTable의 특정 DataRow와 "연결된"특정 DataGridViewRow에 연결하려고합니다. 내 응용 프로그램에 "검색"기능을 사용한다고 가정합니다. 사용자가 버튼을 처음 클릭 할 때 - 검색된 값이있는 행이 강조 표시되고 다음 번 버튼을 클릭하면 다음 행이 강조 표시됩니다. –

답변

0

당신은 당신이 날 소스가 나는 이것이 당신이 일치 할 필요가 없습니다 것보다 동일한 경우 그 becuase됩니다 해달라고 부탁하는 이유 그리드 중독에서이 데이터 테이블은 diffrent입니다 말할 수있는이 방법

foreach(DataGridViewRow row in dgv.Rows) 
{ 
    if(row.Cells[someColumn].Value.ToString().Equals(someTerm)) 
    { 
     dgvRow.DefaultCellStyle.BackColor = Color.Red; 
    } 
} 
+0

예, 모든 DataGridView 행을 검색 할 수 있다는 것을 알고 있지만 할 일이 있기를 바랬습니다. 모든 행을 루핑하지 않아도됩니다. DataRow dataRow = ((DataRowView) dgv.Rows [x] .DataBoundItem) .Row; 이렇게하면 DataTable에서 DataGridViewRow를 찾을 수 있습니다. 아마도 반대로 할 수있는 방법이 있습니다. –

+0

루프 대신 dgv_CellFormatting 또는 dgv_DataBindingComplete 이벤트를 사용할 수 있습니다. –