找回密码
 立即注册

QQ登录

只需一步,快速开始

aita123

注册会员

2

主题

2

帖子

20

积分

注册会员

积分
20
最新发帖
aita123
注册会员   /  发表于:2018-5-4 11:25  /   查看:4675  /  回复:2
本帖最后由 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中。
请问,如何解决?

2 个回复

倒序浏览
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;
            }
        }

评分

参与人数 1金币 +300 收起 理由
JeffryLI + 300 很给力!

查看全部评分

回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-5-25 08:50:23
板凳
谢谢回答
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部