当用户按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.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.pasteDatetimeFormats、pasteBooleanFormat、 pasteNumberChars。
grid.setEditOptions({
pasteDatetimeFormats: ['yyyy-MM-dd', 'yyyyMMdd'],
pasteBooleanFormat: "false,f:true,t:",
pasteNumberChars: "$w,abcd"
});
可以指定一个以上的日期转换格式,而pasteNumberChars在NUMBER字段,指定可以在原文中排除的文本,以便能够转换字符串为数字。