1

我知道您可以像这样为整个数据集设置客户端权限:

<dataset name="foo" databroker="bar" client-permissions="view"/>

有没有办法只在一个字段上设置客户端权限(类似于如何为一个字段设置其他元数据,如“有效”)?

注意:这是在 Aviarc 3.5.0 中,因此数据绑定不可用。

更新:我想到的用例是搜索参数数据集。如果我从某个位置到达搜索屏幕,则应锁定一个参数,因为搜索结果应按该参数过滤。

为相当于临时搜索参数数据集的内容创建一个新的数据代理,以便我可以在单个字段上设置只读属性,这看起来真的有点矫枉过正。

更新:澄清一下,数据集目前没有绑定任何数据代理,它只是像哈希一样用于存储搜索参数。

4

3 回答 3

4

目前没有办法在单个列/字段上设置客户端权限。

应该可以在列上设置数据规则,以防止该列被数据集刷新以外的任何内容写入。

当我拥有应该是只读但包含在客户端可写数据集中的个别数据时,我将数据副本保留在非客户端可写数据集中,并在它们返回时覆盖客户端可写数据。

于 2012-09-06T07:54:12.720 回答
1

如前所述,数据规则可以将单个字段设置为只读。它们可以设置在所有行的给定字段上,也可以设置在单行的字段上。

Adam 提到,为这种情况创建一个单独的数据代理将是矫枉过正,这是正确的。DataBinding 层旨在为应用程序中的某些用例提供这种专业化。

因此,您将创建一个指向您的搜索 DataBroker 的 DataBinding,它将您需要的规则添加到现有操作或您定义的新操作中。然后将 Dataset 绑定到 DataBinding 而不是 DataBroker,然后以正常方式使用。

其目的是受 DataBrokers 约束的规则适用于通过该代理提供的所有类型的数据,因此专注于数据完整性、格式等的规则也是如此。

另一方面,DataBindings 是应用程序中的一个层,允许您绑定与用户与数据交互相关的规则,如您的示例中所示。预计给定代理可能有多个数据绑定,每个数据绑定用于不同的应用程序路径或用户任务,以不同的方式与该数据交互。

于 2012-09-09T04:37:17.307 回答
0

应该可以通过将我想要只读的参数隔离到它自己的数据集中来解决这个问题,并将客户端权限设置为仅针对该参数/数据集的“查看”。

这确实增加了必须为该参数添加特殊情况的开销,但我不需要将其扩展到任何更多特殊情况。

于 2012-09-06T23:58:02.117 回答