Table 添加条目后未更新
Table Not Updating After Adding Entry
简短版本:除非我手动刷新页面,否则新条目不会出现在带有查询生成器过滤器的 table 中。
长版本:我有一个 Table,它使用 过滤掉已标记为完成和已交付的条目。
所以模型是 SystemOrders,但是 table 的数据源是添加了过滤器的模型(SystemOrders_HideComplete).所有这一切都很好。
当用户为数据库创建新条目时,他们单击 "Add" 按钮打开页面片段。他们可以输入所有数据并写入,但 table 不会在 Fragment 关闭时自动刷新,也不会显示新条目。
在与 table(如下所列)相同的页面上使用自定义按钮刷新浏览器页面或重新加载数据源会导致显示新条目。
widget.datasource.query.clearFilters();
var datasource = app.datasources.SystemOrders_HideComplete;
datasource.load();
我尝试调整页面片段的提交按钮,希望它可以让用户不必手动刷新页面,但这似乎也不起作用:
widget.datasource.createItem();
var datasource = app.datasources.SystemOrders_HideComplete;
datasource.load();
app.closeDialog();
我假设这可能是因为 datasource.load();命令来自片段?
如果您能帮助我们找出自动显示新条目的方法,我们将不胜感激。
理论上,如果您为 table 使用相同的数据源并创建页面片段,那么新项目应该自动附加:
// Table datasource
app.datasources.SystemOrders_HideComplete
// Page fragment datasource
app.datasources.SystemOrders_HideComplete.modes.create
如果由于某种原因你想使用不同的数据源来创建新项目,你可以将新记录推送到列表数据源(在这种情况下你将避免额外调用服务器并提供 100% 保证新项目将出现在列表中,即使它不适合所选 filters/paging/sorting...):
widget.datasource.createItem({
success: function(record) {
app.datasources.SystemOrders_HideComplete.items.push(record);
app.closeDialog();
},
failure: function(error) {
// TODO: handle error
}
});
...或强制重新加载列表数据源(在这种情况下,您将获得适合您过滤器的新数据,但可能会错过您的新项目):
widget.datasource.createItem({
success: function(record) {
app.datasources.SystemOrders_HideComplete.load();
app.closeDialog();
},
failure: function(error) {
// TODO: handle error
}
});
简短版本:除非我手动刷新页面,否则新条目不会出现在带有查询生成器过滤器的 table 中。
长版本:我有一个 Table,它使用
所以模型是 SystemOrders,但是 table 的数据源是添加了过滤器的模型(SystemOrders_HideComplete).所有这一切都很好。
当用户为数据库创建新条目时,他们单击 "Add" 按钮打开页面片段。他们可以输入所有数据并写入,但 table 不会在 Fragment 关闭时自动刷新,也不会显示新条目。
在与 table(如下所列)相同的页面上使用自定义按钮刷新浏览器页面或重新加载数据源会导致显示新条目。
widget.datasource.query.clearFilters();
var datasource = app.datasources.SystemOrders_HideComplete;
datasource.load();
我尝试调整页面片段的提交按钮,希望它可以让用户不必手动刷新页面,但这似乎也不起作用:
widget.datasource.createItem();
var datasource = app.datasources.SystemOrders_HideComplete;
datasource.load();
app.closeDialog();
我假设这可能是因为 datasource.load();命令来自片段?
如果您能帮助我们找出自动显示新条目的方法,我们将不胜感激。
理论上,如果您为 table 使用相同的数据源并创建页面片段,那么新项目应该自动附加:
// Table datasource
app.datasources.SystemOrders_HideComplete
// Page fragment datasource
app.datasources.SystemOrders_HideComplete.modes.create
如果由于某种原因你想使用不同的数据源来创建新项目,你可以将新记录推送到列表数据源(在这种情况下你将避免额外调用服务器并提供 100% 保证新项目将出现在列表中,即使它不适合所选 filters/paging/sorting...):
widget.datasource.createItem({
success: function(record) {
app.datasources.SystemOrders_HideComplete.items.push(record);
app.closeDialog();
},
failure: function(error) {
// TODO: handle error
}
});
...或强制重新加载列表数据源(在这种情况下,您将获得适合您过滤器的新数据,但可能会错过您的新项目):
widget.datasource.createItem({
success: function(record) {
app.datasources.SystemOrders_HideComplete.load();
app.closeDialog();
},
failure: function(error) {
// TODO: handle error
}
});