问题产生场景:
在gird中增加操作列,可以删除指定行的数据;gird中的数据是根据条件set进去的,数据set进去后,需要遍历数据再根据条件设置符合条件的行显示删除按钮;
然后首次set数据的时候展示列表没有问题,有些行是显示删除按钮,有些行没有显示删除按钮;
然后在页面有新增数据的方法,新增之后会重新调用查询方法,重新向gird中set数据,然后问题来了,所有行都显示了删除按钮;同样在进行指定行的删除操作后,重新调用查询方法并set数据,仍旧是所有行都显示了删除按钮;
问题排查:
调试时看到根据条件设置删除按钮显示隐藏的方法执行了,后续也没有其他的对此gird的业务代码了,但是断点跳过后就变成所有行显示删除按钮;
然后大神突然想起来renderer这个方法好像是会再执行一下,然后在renderer方法中随便输出了一下东西,发现在grid中setData后会执行renderer方法,然后执行业务代码,完了之后又执行了renderer方法;
问题解决:
将控制删除按钮显示隐藏的方法写在renderer方法中;