SMART datagrid v1.4 > Examples

Back  Forward

Clipboard Paste  Example

사용자가 ctrl+v 키를 눌렀을 때, 클립보드 값들을 가져와 그리드의 선택 영역에 붙여넣기 위해서는 먼저 그리드 editOptionspasteEnabled 속성이 true로 설정돼야 한다. 이 때, singlePastetrue이면 가져온 모든 값들을 붙여넣지 않고 포커스셀에만 복사한다. 

1.4.5 버전 부터는 pasteToSelectiontrue이면 복사한 단일 데이터를 블럭지정된 영역에 붙여넣기를 할수있는 기능을 사용할수 있다. 

기본값 true 기본값 false 기본값 false

Grid - 1
rows

클립보드 텍스트를 TEXT 필드가 아닌 데이터셀 값들로 저장하기 위해서는 형변환이 필요한데 여러가지 방식으로 해결할 수 있다. 먼저 컬럼의 pasteCallback 속성에 콜백 함수를 지정할 수 있다. "이율" 컬럼에 아래처럼 설정했다. 

Code -1
    col.setPasteCallback(function (row, field, text) {
        var v = parseFloat(text);
        return isNaN(v) ? 1.0 : v;
    });

또는 그리드 수준에서 editOptions.pasteCallback을 지정할 수도 있다. 컬럼 pasteCallback이 지정된 경우는 무시된다. 

Code -2
    grid.setEditOptions({
        pasteCallback: function (row, column, field, text) {
            var v;
            switch (field.fieldName()) {
                case 'country':
                    v = text && text.indexOf('X_') != 0 ? 'X_' + text : text;
                    break;
                default:
                    v = field.readValue(text);
                    break;
            }
            return v;
        }
    });

콜백함수들이 지정되지 않으면 필드의 dataType에 따라 변환 형식을 editOptions에 지정할 수 있다. 아래 그리드에서 EditOptions.pasteDatetimeFormats, pasteBooleanFormat, pasteNumberChars를 각각 아래 코드와 같이 지정했다. 

Code -3
    grid.setEditOptions({
        pasteDatetimeFormats: ['yyyy-MM-dd', 'yyyyMMdd'],
        pasteBooleanFormat: "false,f:true,t:",
        pasteNumberChars: "$w,abcd"
    });

날짜 변환 형식은 하나 이상 지정할 수 있고, pasteNumberChars는 NUMBER 필드에서 문자열을 숫자로 변경할 수 있도록 원본 텍스트에서 제외할 문자들을 지정한다. 

Grid - 2
rows

소스보기 JSP 

See Also
GridBase.editOptions
GridStyles.datetimeFormat
GridStyles.numberFormat
GridStyles.booleanFormat
GridColumn.styles
ValueColumn.copyCallback
EditOptions.copyCallback
EditOptions.copyDatetimeFormat
EditOptions.copyNumberFormat
EditOptions.copyBooleanFormat
pasteToSelection
Examples
Clipboard Copy
셀 편집