2012-09-04 19 views
1

TLDR:是否可以刷新单个数据集行? ajax工作流运行后,我想刷新数据库中的当前行,但不是整个数据集(因为它可能非常大,运行整个查询的速度很慢)。仅刷新Aviarc数据集的当前行?


我有一个记录表,显示一个潜在的非常大的数据集,这是违背该数据集的当前行验证程序的按钮的屏幕。最初我通过屏幕操作运行验证工作流程,但这意味着整个屏幕将在验证完成时重新加载,当只有一行发生更改时刷新整个数据集。

问题是我没有简单的访问提交数据库更改的数据集;它与ajax调用提交的数据集不同,因此当ajax请求完成时,更改不会自动发送回屏幕。

回答

3

通常我会做的是在提交工作流程中手动将更改从单行编辑数据集复制回列表数据集,并避免对数据库运行单独的查询以在稍后阶段获取更新的行。

+0

不幸的是,我无权访问行编辑数据集。然而,我最终所做的只是在一个临时数据集上运行一个临时查询,以查看刚刚更改的行,然后像您所说的那样复制它。 –

+0

我认为一个简短的例子会是有益的,编辑添加一个。如果你这么认为,接受。 –

+0

@AdamSharp:你应该发布一个新的答案,而不是编辑其他答案来显着改变它们。 – cspolton

2

由于我无权访问编辑该行的数据集,因此我需要先从数据库中检索编辑的行,然后将行复制回屏幕上显示的实际数据集。例如:

<!-- retrieve just the edited row --> 
<dataset name="temp-foo" databroker="bar" query="get-bar-by-id"> 
    <param name="id" value="{$foo.id}" /> 
</dataset> 

<!-- copy the result back to the original dataset --> 
<copy-row from-dataset="temp-foo" to-dataset="foo" /> 

目前还没有一个等价的一个单行<refresh-dataset>,所以你需要使用一个临时数据集(或数据集编辑)和结果复制回原。