找回密码
 立即注册

QQ登录

只需一步,快速开始

jasonleeoffice

注册会员

20

主题

71

帖子

191

积分

注册会员

积分
191
jasonleeoffice
注册会员   /  发表于:2018-8-20 10:30  /   查看:3703  /  回复:5
本帖最后由 jasonleeoffice 于 2018-8-21 11:02 编辑

右键菜单插入一行,插入前是10行,插入后调用sheet.getRowCount(),结果还是10行!
请问怎么才能获取到最新的行数

5 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-20 15:39:28
沙发
您好,我这边没有能够重现问题,正常来说插入后调用sheet.getRowCount()就可以获得最新的行数。
就像下图这样:
image.png946675109.png
回复 使用道具 举报
jasonleeoffice
注册会员   /  发表于:2018-8-21 08:40:41
板凳
image.png61149596.png
第一次插入时条数没有变,从第二次插入才开始有变化!
CustomMenuView.prototype.getCommandOptions = function (menuItemData, host, event) {} 我在这个方法里调用的,没什么问题吧
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-21 10:48:41
地板
有问题啊,getCommandOptions是将参数传给命令的时候调用,而在您的情况下,命令就是插入行,而getCommandOptions本意是将插入行需要的参数传递给命令时调用,这时命令肯定还没有被执行,所以在这里用getRowCount获取到的肯定是插入之前的行数。
您的需求,可以在RowChanged事件中去做,或者在命令本身的执行方法体中,插入代码之后去加入获取行号的相关代码。推荐第一种用事件来完成。
http://help.grapecity.com/spread ... ~RowChanged_EV.html
rowChanged事件中的propertyName参数可以判断到是什么原因导致的rowChanged,这样就可以区分是添加还是其他操作。然后在其中写您的逻辑即可。
回复 使用道具 举报
jasonleeoffice
注册会员   /  发表于:2018-8-21 11:02:10
5#
ClarkPan 发表于 2018-8-21 10:48
有问题啊,getCommandOptions是将参数传给命令的时候调用,而在您的情况下,命令就是插入行,而getCommandO ...

好的,已经解决了!
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-21 11:58:39
6#
OK,那就结帖了,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部