找回密码
 立即注册

QQ登录

只需一步,快速开始

tiebanfan

注册会员

13

主题

18

帖子

140

积分

注册会员

积分
140
tiebanfan
注册会员   /  发表于:2021-5-11 15:22  /   查看:3058  /  回复:5
sheet.bind(SpreadNS.Events.RowChanged, function (e, info) {
        alert('Row (' + info.row + ')');
      });
我用这个去监听行改变

加载数据源的方法是下面这个
this.spreadTable.getActiveSheet().setDataSource(resultData.data || []);



当加载数据源,他不会不定时的触发上面的方法,我想每加载一次就触发一次,想知道她的触发机制是什。
或者说有没有什么其他的更好的方式去监听表格的行数变化,我的需求就是想去监听表格的行数变化




5 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-11 15:48:22
沙发
您好,
rowChanged事件在sheet的行数发生变化时才会触发(如添加行、删除行)
您绑定数据源时,sheet的行数有发生变化吗?
如果没有改变,则不会触发此事件。

这边根据您的描述,您是否是想监听table的行数变化呢?
绑定不同的数据源引起的table行数变化目前没有事件可以监听到。

有个思路您可以参考下:
您将当前的表格行数用一个变量记录下
绑定数据源后,通过 table.dataRange().rowCount 获取最新的table行数,将其与旧table行数对比,如果不一致则表示table行数改变。
(V9 版本较老,API可能会有所不一致,建议您实际测试下)
回复 使用道具 举报
tiebanfan
注册会员   /  发表于:2021-5-11 16:01:29
板凳
lynn512 发表于 2021-5-11 15:48
您好,
rowChanged事件在sheet的行数发生变化时才会触发(如添加行、删除行)
您绑定数据源时,sheet的行 ...


我是想通过这个监听事件来计算表格是否需要显示y'轴滚动条。因为这个监听事件并不是很准确。所以无法去触发计算滚动条的方法
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-11 16:22:38
地板
上个回答说过,rowChanged事件在sheet的行数发生变化时才会触发(如添加行、删除行)
请先确定吗,您绑定数据源时,sheet的行数有发生变化吗?

另外,数据绑定有3种形式:表单级别数据绑定、单元格级别数据绑定、表格级别数据绑定。
您当前使用的是哪种形式呢?

明确了这些信息后,这边才能更快的解决您的问题。
回复 使用道具 举报
tiebanfan
注册会员   /  发表于:2021-5-11 16:48:42
5#
lynn512 发表于 2021-5-11 16:22
上个回答说过,rowChanged事件在sheet的行数发生变化时才会触发(如添加行、删除行)
请先确定吗,您绑定 ...

当绑定数据源时,行数有发生变化
目前用的是:  表单级别数据绑定
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-11 17:33:32
6#
表单级别数据绑定下,绑定不同的数据源引起的行数改变,目前无法通过事件(RowChanged)监听到。
方案思路与第一个回复相似:
先获取sheet的行数,使用变量记录下来。
建议您绑定数据源后,通过sheet.getRowCount()获取最新的sheet行数,
将其与旧sheet行数对比,如果不一致则表示sheet行数改变。

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