aita123 发表于 2018-5-4 11:25:26

GcMultiRow如何以行为单位来把单元格的数据反映到绑定的DataTable中

本帖最后由 aita123 于 2018-5-9 10:00 编辑

GcMultiRow如何以行为单位来把单元格的数据反映到绑定的DataTable中

现在我有一个MultiRow,使用DataSource = dtYYY(DataTable)来绑定数据。
现在想实现一个功能:
如果某个单元格输入的数据不合理,就把绑定DataTable的数据还原到这个单元格
Me.gcMultiRow1(iRow, iCol).Value = dtYYY.Rows(iRow).item(iCol)
当整个行的每一个单元格的数据都合理时,就把这一行的数据反映到绑定DataTable的这一行中。


但是,现在碰到的问题是,GcMultiRow会自动的把单一单元格的内容反映到绑定的DataTable中。
请问,如何解决?

AronChen 发表于 2018-5-24 11:25:24

本帖最后由 AronChen 于 2018-5-24 11:27 编辑

您好,GcMultiRow提供了是否接受用户输入的事件,事件名为"CellValidating"。

在您这个需求里里可以绑定这个事件,在处理函数里决定是否接受用户输入并更新到数据源中。

示例代码:
private void GcMultiRow_CellValidating(object sender, GrapeCity.Win.MultiRow.CellValidatingEventArgs e)
      {
            var gcMultiRow = sender as GrapeCity.Win.MultiRow.GcMultiRow;
            if (gcMultiRow == null || gcMultiRow.EditingControl == null)
            {
                return;
            }

            var oldValue = gcMultiRow.GetValue(e.RowIndex, e.CellIndex);
            var newValue = gcMultiRow.EditingControl.Text;
            if (newValue == "非法值")
            {
                gcMultiRow.EditingControl.Text = oldValue?.ToString();
                e.Cancel = true;
            }
      }

JeffryLI 发表于 2018-5-25 08:50:23

谢谢回答
页: [1]
查看完整版本: GcMultiRow如何以行为单位来把单元格的数据反映到绑定的DataTable中