Nano Hash - криптовалюты, майнинг, программирование

Сетка кендо с раскрывающейся командой действия

У меня есть сетка KendoUI, привязанная с помощью Angular, и я хотел бы реализовать раскрывающуюся команду настраиваемого действия или столбец шаблона в каждой строке. Мне нужно отслеживать событие изменения раскрывающегося списка для любой из строк, когда сетка находится в режиме отображения, а не в режиме редактирования. Выпадающий список фактически представляет собой просто список всех свойств имени строк сетки, которые я хочу, чтобы пользователь мог выбрать, чтобы переместить строку после другой существующей строки.

Например, скажем, у меня есть эти данные:

Id Name   Position
 A Red    1 
 B Blue   2
 C White  3

Я бы хотел, чтобы в каждой строке отображался раскрывающийся столбец в режиме отображения (чтобы он действовал как команда строки). Выпадающий список будет содержать имена Красный, Синий, Белый с соответствующими значениями. Когда пользователь выбирает один из этих цветов, я изменяю положение этой строки на позицию строки после выбранного цвета. По сути, это раскрывающийся список для изменения порядка строк вместо использования перетаскивания.

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

Любые идеи?

12.12.2014

Ответы:


1

Хорошо, я сделал еще несколько поисков и нашел способ сделать это, хотя это еще не все. Я также нашел способ привязать раскрывающийся список к данным, заполняющим сетку.

Еще одна вещь, которую я обнаружил, когда делал это таким образом, - это мучительно медленно рендеринг сетки сейчас.

    <div id="mainGrid" kendo-grid="mainGrid" k-options="mainGridOptions"></div>

    //grid columns
    $scope.mainGridOptions = {
        dataSource: {
            transport: {
                read: function (e) {
                    gridcolumnService.getGridColumns().success(function (data) {
                        e.success(data);
                    });
                },
            },
        },
        columns: [
            { field: "Name" },
            { field: "ColumnSettings.Type", title: "Type" },
            { field: "ColumnSettings.PrimaryKey", title: "Primary Key", template: '<input type="checkbox" #= ColumnSettings.PrimaryKey ? "checked=checked" : "" # disabled="disabled" ></input>' },
            { field: "ColumnSettings.Title", title: "Title" },
            { field: "ColumnSettings.Editable", title: "Editable", template: '<input type="checkbox" #= ColumnSettings.Editable ? "checked=checked" : "" # disabled="disabled" ></input>' },
            { field: "ColumnSettings.Visible", title: "Visible", template: '<input type="checkbox" #= ColumnSettings.Visible ? "checked=checked" : "" # disabled="disabled" ></input>' },
            { field: "LookupDataCommandId", title: "Lookup", template: '#= LookupDataCommandId ? "Yes" : "" #' },
            { template: '<select id="reorder-dropdown" kendo-drop-down-list k-on-change="exchangeRows(dataItem, kendoEvent)" k-data-source="reorderData()" k-data-text-field="\'Name\'" k-data-value-field="\'GridColumnId\'"></select>' },
            { template: '<a kendo-button k-icon="\'pencil\'" ng-click="editGridColumn(dataItem.GridColumnId)">Edit</a>', width: 100 }
        ]
    };
    $scope.reorderData = function() {
        return $scope.mainGrid.dataSource.data();
    };
    $scope.exchangeRows = function (fromRow, e) {
        $log.log(fromRow.GridColumnId, e.sender.dataItem().GridColumnId);
    };
12.12.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..