找回密码
 立即注册

QQ登录

只需一步,快速开始

sunjava

金牌服务用户

8

主题

18

帖子

115

积分

金牌服务用户

积分
115
sunjava
金牌服务用户   /  发表于:2017-8-28 16:52  /   查看:4018  /  回复:3
本帖最后由 sunjava 于 2017-8-28 17:40 编辑

你们官网上的这个示例中,地址:http://demo.gcpowertools.com.cn/ ... /samples/dirtyItems

我插入两行后,如何获取我插入的这一行的具体数据。用如下语句:
var rows = sheet.getInsertRows();
alert(JSON.stringify(rows));

得到的结果如下:
[{"row":2,"item":null},{"row":3,"item":null}]

只能得到的行编号吗?具体单元格的数据如何获取到呢?要自己循环读取吗?不会吧?


另外,这个示例中,删除行的问题更麻烦
如下代码
$("#btnGetDeleteRows").click(function () {
                var rows = sheet.getDeletedRows();
                alert(JSON.stringify(rows));
                      alert(sheet.getValue(rows[0].row,1)); //目的是显示被删除行对应第二列的值
                if (rows.length > 0) {
                    appendResult("Deleted rows @ " + rows.map(function (item) { return item.row; }).join(", "));
                }
})


请看上面代码中的注释行(即第四行),我本来想获取被删除行的第二列值,但结果却是被删除行下一行第二列对应的值,由于删除行被删掉了,那我如何获取这个值呢?这个值是需要提交到后台的。

3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-28 18:34:04
沙发
您好:

插入行,确实是需要循环读取数据,因为getInsertRows支持获得新增的行,而之后的数据是通过dirtycell去获取的,您的需求需要获取整个脏行所以只能循环去做。

获取删除行的数据,getDeletedRows是没办法获取的getDeletedRows获取的是行的index,但是当您根据index获取数据时由于该行已经删除所以获取的是下一行的数据,解决办法因为删除行的行为是被触发的您完全可以在删除行行为触发之前进行判断提前获取要删除行的数据。
回复 使用道具 举报
sunjava
金牌服务用户   /  发表于:2017-8-29 10:38:37
板凳
我的做法也是这样的。
在插入操作时,只能根据新插入行号,循环获取所在行所有单元格的值,这个确实有些不好用,建议加一个对象记录这些信息,省的用户自行处理了,其实只要在提交时将这新增的整行放到一个对象中就可以了。你们都记录到了行号了呀。
在delete操作中记录被删除行的具体数据中,形成一个新的json对象,在提交后台时使用,这个也不方便使用,建议加一个对象,保存被删除那一行的信息。这样用户使用起来方便一些。
建议你们在新版本中调整,谢谢了!
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-29 14:57:52
地板
本帖最后由 ClarkPan 于 2017-8-29 15:03 编辑
sunjava 发表于 2017-8-29 10:38
我的做法也是这样的。
在插入操作时,只能根据新插入行号,循环获取所在行所有单元格的值,这个确实有些不 ...


您的建议我会帮您向相关部门进行反馈,具体情况还是要有关部门进行讨论决议后才能决定的。

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