Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望增加 afterRender 事件,或修复 ajaxSuccess 隐藏列与右键设置里的列不一致bug #281

Closed
canuran opened this issue Feb 11, 2023 · 4 comments

Comments

@canuran
Copy link

canuran commented Feb 11, 2023

有些场景表格列太多,我使用 ajaxSuccess 来隐藏全是空白数据的列,有两个问题
1、需要对 ajaxSuccess 的数据进行JSON解析,不能使用 getTableData 直接获取
2、此时隐藏列后,在右键菜单里显示该列被仍然勾选

在渲染完成后再隐藏列则没有问题,但由于数据是异步加载再渲染的,并不知道它什么时候渲染完成,希望通过 afterRender 事件来触发

@baukh789
Copy link
Owner

感谢你的建议,我会尽快的进行评估,如果可行的话会提供相应的事件函数。

@baukh789
Copy link
Owner

关于这个问题,可能不需要使用新的事件函数就可以解决。
有两个更新数据的方法refreshGrid setQuery, 在触发数据更新时,可通过传递回调函数来处理你所遇到的问题,如:

GM.setQuery('test', {}, false, (res) => {
     // 此时,渲染已经完成
     // res 是接渲染时使用的数据
})

@canuran
Copy link
Author

canuran commented Feb 17, 2023

Get!确实也是一种解决方法,只不过使用起来有些绕,需要先创建空白表格,再调用内置函数去加载数据,如果能在创建时就提供回调会更简单明了,仅个人建议~

@baukh789
Copy link
Owner

建议在初始化时增加firstLoading: false参数, 这种模式将数据的渲染触发交给了使用者。使用者在合适的地方再调用渲染方法,如setQuery

@canuran canuran closed this as completed Feb 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants