2017-02-02 3 views
1

(단순화하기 위해 내 오래된 질문을 삭제했습니다.)항목/레코드를 어떻게 복제 할 수 있습니까?

테이블에 데이터를 입력 했으므로 새 항목/레코드/행 *에 해당 데이터의 정확한 복제본을 만들고 싶습니다.

* 적절한 용어를 모르겠습니다.

이 작업을 수행 할 수있는 방법이 있습니까?

답변

3

늦은 응답을 드려 죄송합니다. 여기에해야 할 일이 있습니다 :

행에 "복사"버튼을 추가하십시오. 그 버튼에 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(); 

당신은 아마 루프에 대한-에서 자바 스크립트의 확인 수를, 그러나 나는 이것을 실험 할 시간이 없었다.

편집 : 나는 데이터 소스를 만들 대신 목록의 행의 생성 데이터 소스를 사용하기 때문에

은 위의 코드는 바로 목록에서 복사 기록을 표시하지 않습니다. 대신 다음을 시도하십시오.

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(); 
+0

전혀 걱정할 필요가 없습니다. 이것은 효과가 있었다. 고맙습니다! 새 항목이 표시되도록 페이지 또는 테이블을 새로 고치는 방법이 있습니까? 현재 버튼이 작동하지만 수동으로 페이지를 새로 고침하지 않으면 새 항목이 표시되지 않습니다. –

+0

오, 그게 이상 하네, 그건 버그일지도 몰라. 가능성이있는 해결 방법으로 내 대답을 업데이트하겠습니다. –

+0

좋아,이 기능은 "기능"으로 간주되지만, 확실히 향상시킬 수있는 기능입니다. 아코디언 및 목록 (그리드 레이아웃의 셀)에있는 행에는 단일 항목 (표시된 항목) 만 포함하는 특수 데이터 소스가 있습니다. 따라서 행 데이터 소스의 데이터 소스 작성을 사용하여 레코드를 작성하는 것은 목록 데이터 소스를 사용하여 레코드를 작성하는 것과는 다른 작동을합니다 (즉, 행을 작성하면 추가되지 않습니다. 행은 항목을 표시하기로되어 있기 때문입니다). 현재 표시됨) 목록에 추가하면 목록에 추가됩니다. 답변을 업데이트했습니다. 감사합니다! –