2015-08-29 3 views
3

Я использую Handsontable с объектами в качестве базы данных. Данные выглядит примерно так:Скрытые данные для копирования/вставки скрытых данных

[ 
    { productId: 1, productName: "Shirt", productType: "Clothing" } 
    { productId: 2, productName: "Pants", productType: "Clothing" } 
] 

Конфигурация Handsontable столбцов выглядит следующим образом:

columns: [ 
    { data: "productName" }, 
    { data: "productType" } 
] 

Так productId поле не включены в таблицу, или другими словами, productId столбец скрыт ,

Когда пользователь выделяет строку в таблице и нажимает Ctrl + C, тогда Ctrl + V в другой строке, только productName и productType переносятся в новую строку. productId не копируется, но я хочу, чтобы это было. Как я могу сделать Handsontable копировать скрытые данные в дополнение к видимым данным?

Я заглянул в поле productId в таблице, но скрыл его с помощью css. Это был единственный способ иметь скрытые данные в Handsontable, как вы можете видеть в this thread. Но ни одно из этих решений не работает очень хорошо. Я также рассмотрел возможность изменения того, что копируется с использованием события beforeCellCopy, как в this thread. Но это очень хакерский и уродливый способ решить эту проблему. Любые другие идеи?

+0

Вы можете привязать метод toString ко всем вашим объектам, я сделал это, но теперь я не могу вставить данные. Попытка разобраться. –

ответ

0

Так что вы хотите скопировать его за пределы Handsontable, я полагаю. Это означает, что вы хотите добавить контент в свой буфер обмена за пределы того, что обычно будет делать событие CTRL + C. Это означает, что вам нужно быть противным, поэтому событие beforeCellCopy звучит как идеальная идея.

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

Смежные вопросы