我正在使用smartgwt api的Listgrid。我使用 setShowFilterEditor()在列表网格上设置了过滤器编辑器。在UI上,我可以使用listgrid顶部显示的过滤器编辑器过滤掉特定列中的文本。到此为止,一切正常。但问题在此之后开始。我的ListGridRecords是ScreenInstanceGridRecord类型。
我在使用方法 clearCriteria()从ListGrid获取 ListGridRecord 之前清除了过滤条件,以便我可以保存所有记录到数据库即。 未经过滤的记录。当我尝试使用 getRecordList()从listgrid获取记录时,在第一次迭代时动态添加1000个虚拟记录,我的所有填充记录都将被忽略。我需要的是 ScreenInstanceGridRecord 类型的记录。但是在第二次迭代中,我得到的是 ScreenInstanceGridRecord 类型的填充记录。为什么会出现这个问题。当我尝试使用 getRecordList()从ListGrid获取记录时,我应该在第一次迭代时获取ScreenInstanceGridRecord。我不知道这个奇怪的事情。我们非常欢迎您的任何帮助.. plss
答案 0 :(得分:1)
当你说你得到1000张虚拟记录而不是你加载的记录时,实际上你的记录根本没有加载。在这种情况下,ListGrid创建的ResultSet(请参阅ListGrid.fetchData()的文档)返回临时长度(默认为1000)并返回加载标记来代替记录(请参阅ResultSet.rowIsLoaded())。
使用DataArrived事件在加载数据后执行操作。请参阅ResultSet.lengthIsKnown(),了解通常如何判断数据尚未加载。