ユーザーがctrl+vキーを押したとき、クリップボードの値たちをとってきてグリッドの選択領域に貼り付けるためには まずグリッドeditOptionsのpasteEnabledプロパティーがtrueに設定しなければならない。 この時、singlePasteがtrueなら持ってきたすべての値たちを貼り付けずにフォーカスセルにだけコピーする。
デフォルト値 true . デフォルト値 false .
クリップボードテキストをTEXTフィールドではないデータセルの値達としてセーブするためには 形変換が必要であるが、これはいろんな方法で解決することができる。 まず、カラムのpasteCallbackプロパティーにコールバック関数関数を指定することができる。 "利率"カラムに以下のように設定した。
col.setPasteCallback(function (row, field, text) {
var v = parseFloat(text);
return isNaN(v) ? 1.0 : v;
});
またはグリッドでeditOptions.[c.EditOptions.pasteCallback]]を指定することもできる。 カラムにpasteCallbackが指定された場合は無視される。
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.pasteDatatimeFormats、[c.EditOptions.pasteBooleanFormat]]、pasteNumberCharsを各下のコードのように指定した。
grid.setEditOptions({
pasteDatetimeFormats: ['yyyy-MM-dd', 'yyyyMMdd'],
pasteBooleanFormat: "false,f:true,t:",
pasteNumberChars: "$w,abcd"
});
日付の変換形式は一つ以上指定することができて、pasteNumberCharsはNUMBERフィールドで文字列を数字に変更できるよう 原本テキストで例外にする文字たちを指定する。