baukh789 / GridManager

🌐 快速、灵活的对Table标签进行实例化,让Table标签充满活力。
https://gridmanager.lovejavascript.com
MIT License
821 stars 139 forks source link

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

Closed canuran closed 1 year ago

canuran commented 1 year ago

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

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

baukh789 commented 1 year ago

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

baukh789 commented 1 year ago

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

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

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

baukh789 commented 1 year ago

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