【问题标题】:How to Trigger Datagridview.cellValidating manually?如何手动触发 Datagridview.cellValidating?
【发布时间】:2013-09-20 11:32:20
【问题描述】:

我正在从另一个表中的 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 是 grdDetails 的数据源

根据This,您应该能够使用 BeginEdit 和 EndEdit 强制验证触发器。但它没有发生。

我在单元格验证中获取产品描述、MRP 和其他详细信息。所以有必要调用它。

【问题讨论】:

标签: c# .net vb.net datagridview


【解决方案1】:

您必须更改当前单元格,然后返回该单元格。试试这个。您可能必须更改它,因为它尚未经过测试。

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

【讨论】:

  • 太棒了,很高兴为您提供帮助。
  • 注意,可能需要围绕CurrentCell = null; 进行尝试/捕获以检测验证失败。
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 2018-07-08
  • 2019-04-28
  • 1970-01-01
  • 2014-01-04
  • 2015-07-22
  • 2014-04-25
  • 2015-04-26
相关资源
最近更新 更多