Google app maker 如何复制项目/记录?

Google app maker 如何复制项目/记录?,google-app-maker,Google App Maker,(删除了我的旧问题以简化它。) 我在一个表中输入数据,然后我想在一个新的项目/记录/行*中精确复制该数据 *不确定正确的术语 有没有办法做到这一点 很抱歉反应太慢。以下是您应该做的: 在行中添加“复制”按钮。在该按钮上的onClick中,添加以下代码: var createDataSource = widget.datasource.modes.create; var rowDataSource = widget.datasource; createDataSource.item.foo = r

(删除了我的旧问题以简化它。)

我在一个表中输入数据,然后我想在一个新的项目/记录/行*中精确复制该数据

*不确定正确的术语


有没有办法做到这一点

很抱歉反应太慢。以下是您应该做的:

在行中添加“复制”按钮。在该按钮上的onClick中,添加以下代码:

var createDataSource = widget.datasource.modes.create;
var rowDataSource = widget.datasource;
createDataSource.item.foo = rowDataSource.item.foo;
createDataSource.item.bar = rowDataSource.item.bar;
// And so on for each field
createDataSource.createItem();
您可能可以确保javascript for in循环遍历中项目的所有属性,这样您就不必手动指定每个记录,但我没有时间尝试这一点

编辑:

上面的代码不会立即在列表中显示复制的记录,因为我使用了row的create数据源,而不是lists create数据源。请尝试以下方法:

var rowDataSource = widget.datasource;
// Instead of using the row  datasource for create, explicitly use the data source of your list.
var listDatasource = app.datasources.NameOfYourListsDataSource;
var createDataSource = listDatasource.modes.create; 

createDataSource.item.foo = rowDataSource.item.foo;
createDataSource.item.bar = rowDataSource.item.bar;
// And so on for each field
createDataSource.createItem();

不用担心。这起作用了。非常感谢。是否有方法刷新页面(或表格)以显示新项目?该按钮目前可以工作,但新项目不会出现,除非我手动刷新页面。哦,这很奇怪,这可能是一个错误。我会用一个可能的解决方法来更新我的答案。好吧,这一种算是一种“功能”,但它肯定是我们可以改进的。手风琴和列表中的行(以及网格布局中的单元格)具有特殊的数据源,这些数据源只包含单个项(它们正在显示的项)。因此,使用行数据源的创建数据源创建记录的行为与使用列表数据源创建记录的行为不同(即,在行上创建不会添加记录,因为该行只应显示其当前显示的项),而将其添加到列表会将其追加到列表中。更新了答案,谢谢!