1

我创建了一个自定义应用程序(使用回溯查询),它发现了过去 N 天内被阻止的任何项目。它显示基本的故事/缺陷数据,以及“阻塞”的持续时间和原因。可悲的是,有些故事已被多次屏蔽。

我想在我的显示网格中为故事 ID 和阻止原因的每个组合显示一行。但是,我无法让它工作 - 它顽固地显示每个 id 仅一行(例如 US1243)。经过无休止的调试,我发现我必须更改自定义数据存储中的字段名称。我曾经有这个:

// inside a loop
var data = {
    id : formattedID,
    name : name,
    planEstimate : size,
    reason : reason,
    duration : roundedDuration
};

list.push(data);

// later...
var myStore = Ext.create("Rally.data.custom.Store", {
    data : list,
    pageSize : 100
});

// and of course I use this as the store for a rally grid

为了让它显示“列表”数组中的所有数据,我只需将“数据”对象更改为如下所示:

var data = {
    value : formattedID,
    name : name,
    planEstimate : size,
    reason : reason,
    duration : roundedDuration
};

(注意将“id”替换为“value”。当然,我还必须更改网格中的“dataIndex”引用。)

我搜索和搜索,但没有找到解释为什么它将“id”属性解释为需要是唯一的。是数据存储本身吗?格子?没精力去追,现在调试了半天。

是否有任何 Rally App SDK 文档可以解释这一点?

4

1 回答 1

0

这实际上是从 Ext 继承的一个微妙的行为。预计商店中的所有记录都具有唯一的 ID。默认 id 字段是“id”,这就是为什么在您的第一个示例中,每个 id 只获得一行,因为商店中的每个项目都会覆盖具有相同 id 的任何现有项目。第二个例子有效,因为没有指定 id,所以 Ext 会自动生成一个唯一的。

于 2014-03-14T01:32:36.507 回答