2013-09-20 4 views
2

Я вставляю несколько записей в свой Datagridview из другой таблицы, я хочу вызвать событие CellValidating для каждой записи, которую я вставляю. Пожалуйста, помогите мне.Как запустить Datagridview.cellValidating вручную?

Вот мой код

  m_Sqlstr = "Select Distinct RFID, Prod_Code, Lot_No From ScanStk Where BatchNo = '" & strBatchno & "' " 
      m_SqlCmd = New SqlCommand(m_Sqlstr, Con) 
      Con.Open() 
      RFIDReader = m_SqlCmd.ExecuteReader(CommandBehavior.CloseConnection) 

      With m_BindingsrcDetail 
        While RFIDReader.Read 
         .AddNew() 
         .Current("SR") = m_BindingsrcDetail.Count 
         .Current("LOT_NO") = RFIDReader("LOT_NO").ToString.Trim 
         .Current("PROD_CODE") = RFIDReader("PROD_CODE").ToString 
         .Current("QUANTITY") = 1 
         GrdDetails.BeginEdit(False) 
         GrdDetails.CurrentRow.Cells("Prod_code").Value = RFIDReader("PROD_CODE").ToString 
         GrdDetails.EndEdit() 
        End While 
      End With 

grddetails это имя сетки, m_BindingsrcDetail является DataSource для grdDetails

Согласно This, Вы должны быть в состоянии заставить триггер проверки с помощью BeginEdit и EndEdit. но его не происходит.

Я получаю описание продукта, ППМ и другие детали в проверке ячейки. Так что нужно назвать это.

ответ

5

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

BeginEdit(); 
DataGridViewCell currentCell = GrdDetails.CurrentRow.Cells("Prod_code"); 
EndEdit(); 
CurrentCell = null; 
CurrentCell = currentCell; 
+0

Gr8..Это было действительно полезно, оно работало как шарм. – Saurabh

+0

Удивительный, рад помочь. –

+2

Примечание. Для обнаружения ошибок проверки может потребоваться попытка/catch вокруг 'CurrentCell = null;'. –

Смежные вопросы