aui datatable сортируемые выбранные строки - PullRequest
0 голосов
/ 28 мая 2018

Я использую библиотеку aui для создания сортируемых данных.Я хотел бы, чтобы ячейки были доступны для выбора (как правило, обычный текст, без привязки события javascript).

Если columns определено как

var columns = [
    {
        key: "col1",
        label: "Column 1",
        sortable: true
    },
    {
        key: "col2",
        label: "Column 2",
        sortable: true
    },
    ...
];

Если я использую что-то вроде

var myDatatable = new A.DataTable.Base({
    columnset : columns,
    recordset : data
});

, я могу выбрать отдельные строки, но сортировка не производится.

Если я использую

var myDatatable = new A.DataTable({
    columnset : columns,
    recordset : data
});

Таблица сортируется, но я не могу выбрать данные обычным нажатием мыши + перетаскиванием.

Чего мне здесь не хватает?

Я попытался добавить следующие плагины

plugins: [{
    cfg: {
        type: "rows"
    },
    fn: A.Plugin.DataTableHighlight
},
{
    cfg: {
        selectRow: true,
        selectColumn: true
    },
    fn: A.Plugin.DataTableSelection
}]

, но безуспешно с простым простым выбором.Для справки, документация aui здесь .Обратите внимание, что базовый пример выполняет то, что мне нужно, за исключением сортировки, а для реального примера требуется двойной щелчок (с разрешенным редактированием) по ячейкам, чтобы иметь возможность выбрать / скопировать содержимое.

Пожалуйста, помогите.Спасибо!

1 Ответ

0 голосов
/ 28 мая 2018

Мне удалось решить эту проблему после рендеринга таблицы, очистив события mousedown и mouseup и переопределив функцию getEditor, и сортировка все еще работает.

/* text is not selectable otherwise */
myDatatable.get("contentBox").purge(true, "mousedown");
myDatatable.get("contentBox").purge(true, "mouseup");
/* suppress getEditor */
A.DataTable.prototype.getEditor = function() {};
...