假设我有一组项目需要在表格/列表中显示。该集是高度可变的,因为后台作业和其他用户访问相同的数据。
现在,结果输出必须包含触发基础数据操作的链接。这些操作可能会从集合中删除某个项目,但并不总是这样做。
由于ListView的模型(我现在不太确定DataView)是基于索引的,因此在这种情况下它必然会失败。当我点击引用错误对象的链接时出现错误,因为基础列表的顺序或大小已更改。
所以我需要的是总是引用它们应该操作的对象的自然ID的链接。当链接被呈现给用户时,无论渲染时使用的集合发生了什么,我都希望渲染链接始终引用同一个对象。
最简单的解决方案是使用仅包含操作和id的无状态链接,将用户引导到另一个页面。但这有一个明显的缺点,即我放弃了组件系统首先提供的所有好处。
你会如何解决这个问题?
答案 0 :(得分:0)
DataView是非基于索引的,请参阅IDataProvider #model(),这样您就可以得到正确答案。