找回密码
 立即注册

QQ登录

只需一步,快速开始

zongxudong
初级会员   /  发表于:2013-11-25 17:40  /   查看:12687  /  回复:15
目前, 我实现了一个自定义的 ConnectionBase 数据源. 当用户修改了其中的某个数据后. 会连带重新计算其他数据. 不过这些计算是后台服务器完成. 也就是数据源其他的列值发生了改变
目前我的做法是暴露事件给 Sheet 监听. 如果数据发生改变. 就需要刷新对应的区域. 可是我发现我调用刷新方法后始终不能重新 调用 ConnectionBase  获取对应单元格的值.  以至于修改后的值不能显示出来

请给于帮助


QQ截图20131105160025.png

15 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-11-25 19:31:00
沙发
zongxudong 你好

我们正在重现你的问题,有新的进展之后给你回复。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-26 12:26:00
板凳
回复 1楼zongxudong的帖子

zongxudong 你好,
请问问题是否为:
你在 ConnectionBase  中做对数据做了操作后,但是却无法通过 GetRecordValue 方法取得?进而无法更改通过代码更新的数据到 Spread 上?

我对 “目前我的做法是暴露事件给 Sheet 监听”使用方法还不太确定,能否把你的测试demo发上来我查看?
回复 使用道具 举报
zongxudong
初级会员   /  发表于:2013-11-26 13:53:00
地板
我的项目比较大. 如果需要发送demo, 我这边需要整理一下.
你说的问题差不多是这样的.
主要的问题就是我调用 GcSpreadSheet Invalidate 或者 InvalidateRows 等刷新的方法. 按照我的理解他应该会重新调用我自定义的 ConnectionBase 的 GetRecordValue 来获取新的显示数据. 但是按照我目前程序调试的情况看. 好像不是我想的这样的
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-26 15:34:00
5#
回复 4楼zongxudong的帖子

正常情况下,只要是数据源修改成功,即会自动更新到 Spread UI 上。
所以,还需要你发 Demo 上来查看下。
谢谢
回复 使用道具 举报
zongxudong
初级会员   /  发表于:2013-11-26 17:09:00
6#
ComponentOne.zip (1.73 MB, 下载次数: 634)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-26 18:25:00
7#
回复 6楼zongxudong的帖子

好的,我调试后给你反馈。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-27 11:39:00
8#
回复 6楼zongxudong的帖子

zongxudong 你好,
我理解你描述了三个问题:
1.在最后空白行上进行编辑,TestConnection 更新当前编辑行数据,并且显示在 Spread 中。
2.如果修改最后一列值,则同步到该行第一列单元格。
3.在空白行输入数据后,需要再次添加一个空白行到末尾。

运行你的 Demo ,是可以满足前需求的。请查看附件截屏。

capture-1.zip (329.07 KB, 下载次数: 692)
回复 使用道具 举报
zongxudong
初级会员   /  发表于:2013-11-27 12:47:00
9#
回复 8楼iceman的帖子

非常感谢
现在这个项目, 需要处理的第一个问题是, 最后一行数据是一个空行.  在编辑最后一行数据的时候.  TestConnection 会自动 给 DataTable 增加一行.  
并 由 DataTable 抛出一个新增行事件, 这时候 Sheet 监听的DataTable 事件会刷新页面. 始终保持最后一行空数据.  问题是这个Demo反而连新增行都不行了. 我自己的项目是可以的. 首先能不能解决这个问题.

其实真正的问题, 我发现当 ConnectionBase 提供的数据, 第一次加载的数据都比较正常. 后期再添加的数据显示的单元格就不正常了.

QQ截图20131127124441.png
回复 使用道具 举报
zongxudong
初级会员   /  发表于:2013-11-27 13:48:00
10#
回复 8楼iceman的帖子

刚才, 我注意看了一下代码. 那个最后行. 我自己的项目还是我用的 AddRows 方法添加进去的.
现在可能最直接的问题. 就是如何通知 View 刷新 Sheet 并重新 调用 ConnectionBase 的数据
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部