我对 dgrid 网格有一个过时的数据问题。假设以下场景:
- 网格被分配给 JsonStore,它加载相关数据(例如 GET /api/items)
- 用户选择一个元素,网格发出
dgrid-select
项目,该项目提供对 API 调用返回的实际对象的引用。 - 通过该引用,操作发生并且应用程序流程继续,可能会更新项目(例如 PUT /api/items/1)
- 网格是手动刷新的(这反过来会刷新存储),因此它不包含过时的数据(例如 GET /api/items)。由于网格是使用选项创建的
deselectOnRefresh: false
,因此所选行仍然相同。
此时,如何在不额外调用 API 的情况下获取对具有更新数据的对象的引用?
我尝试再次手动选择该行,但这不会触发事件。我也尝试过调用grid.row(selectedItemId)
,但这会返回行对象而不是底层对象。我也尝试调用store.get(selectedItemId)
,虽然它为我提供了更新的对象,但它对 API 执行了另一次调用,这将是不必要的,因为该信息已由应用程序加载。