0

我对 dgrid 网格有一个过时的数据问题。假设以下场景:

  1. 网格被分配给 JsonStore,它加载相关数据(例如 GET /api/items)
  2. 用户选择一个元素,网格发出dgrid-select项目,该项目提供对 API 调用返回的实际对象的引用。
  3. 通过该引用,操作发生并且应用程序流程继续,可能会更新项目(例如 PUT /api/items/1)
  4. 网格是手动刷新的(这反过来会刷新存储),因此它不包含过时的数据(例如 GET /api/items)。由于网格是使用选项创建的deselectOnRefresh: false,因此所选行仍然相同。

此时,如何在不额外调用 API 的情况下获取对具有更新数据的对象的引用?

我尝试再次手动选择该行,但这不会触发事件。我也尝试过调用grid.row(selectedItemId),但这会返回行对象而不是底层对象。我也尝试调用store.get(selectedItemId),虽然它为我提供了更新的对象,但它对 API 执行了另一次调用,这将是不必要的,因为该信息已由应用程序加载。

4

1 回答 1

2

grid.row返回具有 3 个属性的对象:

  • element- 行的元素,当前在网格中呈现
  • id- 行的 ID(与其在商店中的 ID 相同)
  • data- 与该行有关的商店项目

data属性应该是你想要的。

于 2013-11-09T23:35:46.200 回答