在清除natTable列列表后更改DataProvider的列数和行数时,创建一个新的列项并更改columnPropertyAccessor的列项列表。然后,将新的数据模型放入筛选器列表并刷新它。
当对7列nattable进行排序(升序或降序)并单击时,它将更改为与上述不同的数据模型(4列),但如果排序,则会发生 和"IndezxOutOfBoundException“。如果您在没有排序的情况下交换数据模型,则没有问题。我不知道是哪一部分引起的。
在更改数据模型时,替换筛选器列表的方法是否错误?如果有人遇到类似的错误并解决了它,请帮助。
发布于 2021-12-21 05:16:46
嗯,你不显示你是怎么做的,所以我不能透露任何细节。但要回答你的问题,是的,我认为你做错了。
简而言之,如果您有一个根据列应用的状态,比如排序或筛选,并且更改了底层的数据结构,那么当状态与结构匹配时,事情就会中断。不知道为什么你认为这应该自动工作。
如果更改基础数据结构,则需要提前清除基于结构的状态。
NatTable示例应用程序中有一个示例,演示如何动态更改数据提供程序。不确定该示例是否涵盖了状态的清除,或者当您做正确的事情时是否会自动处理。
https://stackoverflow.com/questions/70431566
复制相似问题