2015-01-23 2 views
0

여기 내가 지금하고있는 일이 있습니다.새로운 Gridcontrol 레코드를 강조하고 싶습니다.

private void gvOrderList_RowStyle(object sender, RowStyleEventArgs e) 
{ 
     GridView View = sender as GridView; 
     if (e.RowHandle >= 0) 
     { 
      string sGridRecordOrderNumber = View.GetRowCellDisplayText(e.RowHandle, View.Columns["orderNo"]); 
      foreach (string sNewRecordOrderNo in oNewRecordOrderNoList) 
      { 
       if (sGridRecordOrderNumber == sNewRecordOrderNo) 
       { 
        e.Appearance.BackColor = Color.Salmon; 
        e.Appearance.BackColor2 = Color.SeaShell; 
        break; 
       } 
      } 
     } 
    } 

스레드를 사용하여 30 초마다 SQL 쿼리를 실행하고 데이터 원본을 목록으로 지정합니다. oNewRecordOrderNoList에 새 레코드 목록이 포함되어 있습니다. 나는 강조 표시된 행을 가져 오기 위해 OrderNo 열과 핸들의 같은 열을 일치시키고있다.

예상 한대로 행이 강조 표시되지만 1 초 동안 그리드 컨트롤에 큰 크로스를 가하고 있습니다. 그리고 현재의 양식 다음에 다른 양식을 열면 다른 양식의 십자가도 표시됩니다. 어리석은 것 같아.

십자형 디스플레이없이 열 값을 일치시켜 새로운 행의 모양을 변경할 수있는이 십자가 또는 다른 솔루션을 제거하는 솔루션이 필요합니다.

도움을 받으실 수 있습니다.

답변

0

적색은 그리드를 그리는 동안 예외가 발생했음을 의미합니다. 데이터 소스를 변경하기 때문에 데이터가로드 될 때까지 강조 표시를 해제하는 것이 좋습니다. 다음과 같이 입력하십시오 :

private void LoadData() { 
    myGridView.BeginDataUpdate(); 
    myGridControl.DataSource = GetNewDataSource(); 
    myGridView.EndDataUpdate(); 
} 
+0

죄송합니다. 그것은 작동하지 않았다. 십자가는 여전히 거기에 있습니다. 이 십자가가 다른 형태로 나타나는 이유를 이해하지 못합니다. row_style 이벤트의 데이터에 주석을 달면 십자가 사라집니다. –

+0

gvOrderList_RowStyle의 코드 주석. 십자가가 아직 거기 있습니까? –

+0

아니요. 전에 말씀 드렸듯이 이벤트의 코드에 주석을 달아서 십자가가 사라집니다. 내가 이벤트의 코드에 주석을 달면 모든 것이 제대로 작동하고있다. 따라서이 이벤트의 코드에만 문제가 있습니다. 그건 그렇고, 쿼리 시간을 주셔서 감사합니다. –