找回密码
 立即注册

QQ登录

只需一步,快速开始

qiuzhilv007

中级会员

34

主题

85

帖子

620

积分

中级会员

积分
620

活字格认证微信认证勋章

qiuzhilv007
中级会员   /  发表于:2015-12-15 17:15  /   查看:6865  /  回复:6
有DataTableA和DataTableB,表A作为multirow的DataSource
在代码中对multirow赋值:multirow(rowIndex,columnIndex).value = "abc"
后,与表B merge:
DataTableB.Merge(Directcast(multirow.DataSource,DataTable))
在代码中对表A赋的值abc,没有被merge到表B中
这是multirow的BUG吗?在sheet4.0中相同代码操作没有问题。

6 个回复

倒序浏览
robert
金牌服务用户   /  发表于:2015-12-16 09:57:00
沙发
请尝试在调用Merge之前调用DataTableA的AcceptChanges方法

评分

参与人数 1金币 +999 收起 理由
Alice + 999 奖励金币

查看全部评分

回复 使用道具 举报
qiuzhilv007
中级会员   /  发表于:2015-12-16 16:54:00
板凳
AcceptChanges确实可以更新数据,但把multirow上设定的单元格的式样都清了。这个方法不敢轻易使用,改了这一点却出了更大的BUG。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-12-16 17:24:00
地板
回复 3楼qiuzhilv007的帖子

谢谢反馈。
问题我们收到了,我请研发组帮您再看下这个问题。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2015-12-16 17:28:00
5#
明白了。请尝试如下代码,看是否可以解决需求
  1. EditingActions.CommitRow.Execute(this.gcMultiRow);
复制代码

评分

参与人数 1满意度 +5 收起 理由
qiuzhilv007 + 5 thanks

查看全部评分

回复 使用道具 举报
qiuzhilv007
中级会员   /  发表于:2015-12-16 18:04:00
6#
回复 5楼robert的帖子

这样可以解决。谢谢
另外commitRow和EndEdit有何区别,哪个先执行?
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2015-12-17 09:36:00
7#
EndEdit功能:退出编辑,保存值到数据源的对应格子。如果不离开当前行,这个值可以通过按ESC键回滚。
CommitRow功能:如果在编辑状态,先退出编辑状态(EndEdit功能),之后,提交数据源,(类似AcceptChange),CommitRow之后,不能按ESC回滚数据。

所以:EndEdit会先执行

评分

参与人数 1金币 +300 收起 理由
Alice + 300 奖励金币

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部