如何在表单中通过按键强制加载和项目?
How to force load and item by key in form?
案例
1 - 我有一个带有数据源任务的手风琴小部件。
2. - 我有一个表格来显示有关所选任务的信息。它有一个数据源 TaskByKey。
寻求的解决方案:
两个 Tasks AccordionRow 上都有一个按钮。
onClick 按钮应该基于 AccordionRow 项目的键将其数据加载到具有数据源 TaskByKey 的表单中。
我试过的:
我尝试在 Google 的模板 Project Tracker 中实施作为示例给出的解决方案:
/**
* Navigates user to the specific project view page.
* @param {!string} projectKey - project key to view.
* @param {boolean=} forceReplace - optional flag that forces to replace URL
* state in cases when state push would be normally used.
*/
function gotoViewProjectPageByKey(projectKey, forceReplace) {
var params = {
projectKey: projectKey
};
gotoViewProjectPageByParams(params, forceReplace);
}
当然,上面的示例针对的是一个页面,因为我想在同一页面上更改元素的数据源。
TLDR
如何设置按钮的 onClick 事件以从 datasource_X 到 datasource_X_byKey 按键加载项目?
考虑到您的 TaskByKey 假装只过滤特定任务...您可以将以下内容放在 onClick 事件中按钮。
var taskKey = widget.datasource.item._key;
var ds = app.datasources.TaskByKey;
ds.query.filters._key._equals = taskKey;
ds.load();
//Then, here you either navigate to a page or open a dialog or open a popup.
考虑到您的 Tasks 数据源和您的 TaskByKey 数据源来自同一模型,以上内容将起作用。
参考:https://developers.google.com/appmaker/scripting/api/client#Query
案例
1 - 我有一个带有数据源任务的手风琴小部件。
2. - 我有一个表格来显示有关所选任务的信息。它有一个数据源 TaskByKey。
寻求的解决方案:
两个 Tasks AccordionRow 上都有一个按钮。
onClick 按钮应该基于 AccordionRow 项目的键将其数据加载到具有数据源 TaskByKey 的表单中。
我试过的:
我尝试在 Google 的模板 Project Tracker 中实施作为示例给出的解决方案:
/**
* Navigates user to the specific project view page.
* @param {!string} projectKey - project key to view.
* @param {boolean=} forceReplace - optional flag that forces to replace URL
* state in cases when state push would be normally used.
*/
function gotoViewProjectPageByKey(projectKey, forceReplace) {
var params = {
projectKey: projectKey
};
gotoViewProjectPageByParams(params, forceReplace);
}
当然,上面的示例针对的是一个页面,因为我想在同一页面上更改元素的数据源。
TLDR
如何设置按钮的 onClick 事件以从 datasource_X 到 datasource_X_byKey 按键加载项目?
考虑到您的 TaskByKey 假装只过滤特定任务...您可以将以下内容放在 onClick 事件中按钮。
var taskKey = widget.datasource.item._key;
var ds = app.datasources.TaskByKey;
ds.query.filters._key._equals = taskKey;
ds.load();
//Then, here you either navigate to a page or open a dialog or open a popup.
考虑到您的 Tasks 数据源和您的 TaskByKey 数据源来自同一模型,以上内容将起作用。
参考:https://developers.google.com/appmaker/scripting/api/client#Query