Как я могу продублировать предмет / запись?

(Для упрощения удалил свой старый вопрос.)

Я ввожу данные в таблицу, а затем хочу сделать точную копию этих данных в новом элементе / записи / строке *.

* не уверен, что это правильный термин.

Есть ли способ добиться этого?


person Adam Bergeron    schedule 02.02.2017    source источник


Ответы (1)


Извините за медленный ответ. Вот что вам следует делать:

Добавьте в строку кнопку «копировать». В 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 перебирает все свойства элемента, поэтому вам не нужно вручную указывать каждую запись, но у меня не было времени поэкспериментировать с этим.

Редактировать:

Приведенный выше код не будет сразу отображать скопированную запись в списке, потому что я использовал источник данных создания строки вместо списков источника данных создания. Попробуйте вместо этого:

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();
person Devin Taylor    schedule 02.02.2017
comment
Совершенно не беспокойтесь. Это сработало. Спасибо! Есть ли способ обновить страницу (или таблицу) для отображения нового элемента? В настоящее время кнопка работает, но новый элемент не появляется, пока я не обновлю страницу вручную. - person Adam Bergeron; 02.02.2017
comment
О, это странно, это может быть ошибка. Я дополню свой ответ вероятным обходным путем. - person Devin Taylor; 03.02.2017
comment
Хорошо, этот вид считается функцией, но это то, что мы определенно можем улучшить. Строки в аккордеонах и списках (и ячейки в макете сетки) имеют специальные источники данных, которые содержат только один элемент (элемент, который они отображают). Таким образом, создание записи с использованием источника данных создания строки источника данных ведет себя иначе, чем создание записи с использованием источника данных списка (а именно, создание записи в строке не добавит ее, потому что эта строка должна отображать только тот элемент, в котором она находится. отображается в данный момент) при добавлении его в список добавляет его в список. Обновил ответ, спасибо! - person Devin Taylor; 03.02.2017