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

Сохранение colReorder таблиц данных БЕЗ сохранения состояния

Я использую таблицы данных и colReorder и нужно сохранить состояние столбцов без использования statesave (мне не разрешено использовать localcache). Однако у меня есть таблица предпочтений в моей базе данных для хранения такого рода информации в формате JSON.

Я просмотрел colReorder.order(), который выглядит так, как мне нужно получить заказ.

До сих пор я думаю об изменении столбца, вызовите colReorder.order() и поместите возвращенный массив в мою таблицу настроек, а затем при повторной инициализации используйте его для изменения порядка таблицы.

Итак, мой вопрос/в чем мне нужна помощь, таков: при изменении colOrder мне нужно сохранить порядок, в котором они находятся, и обновить мои настройки. Как мне это сделать? Кажется, я не могу найти «где» разместить colReorder.order(). Я не видел onChange() для таблиц данных и даже не уверен, что это лучший способ приблизиться к этому.

РЕДАКТИРОВАТЬ: ответ Дэвида - идеальное решение, однако неприменимо в моей ситуации из-за уже существующего кода и лени.

Мое решение/обходной путь, которое я нашел, состояло в том, чтобы упорядочить и сохранить details.mapping из внутри этой функции в соответствии с моими предпочтениями и при инициализации моей таблицы я использую colReorder.order(savedArray[],true).

Оставил на тот случай, если кто-то окажется в ситуации, в которой оказался я.


Ответы:


1

На самом деле DataTables предоставляют методы для хранения и извлечения state в альтернативное место и из него. Посмотрите на stateSaveCallback и stateLoadCallback.

Однако у меня есть таблица предпочтений в моей базе данных для хранения такой информации в формате JSON.

Тогда вам просто нужно заполнить «бланки». Предположим, у вас есть серверный скрипт с именем statesave, который может сохранять и извлекать состояние с помощью «установки» и «получения» с использованием уникального userId. Скелет будет выглядеть так:

$('#example').DataTable({
  stateSave: true,
  stateSaveCallback: function(settings, data) {
     $.ajax( {
      url: 'statesave',
      dataType: 'json',
      data: { 
        action: 'set', 
        userId: aUserId,
        state: data 
      }
    })
  },
  stateLoadCallback: function(settings) {
     var state;
     $.ajax( {
       url: 'statesave',
       dataType: 'json',
       async: false,
       data: { 
         action: 'get', 
         userId: aUserId
       },
       success: function(data) {
         state = data
       })
     })
     return state
  }
})
06.09.2018
  • Дать вам лучший ответ, поскольку в идеале это лучшее решение. К сожалению, разработчики до этого не сделали этого и сохранили все опции вручную. Возможно, этого метода не существовало, когда код, над которым я работаю, был написан, но я слишком ленив для рефакторинга :) 06.09.2018

  • 2

    Похоже, вы используете опцию server-side processing. В этом случае вы можете добавить массив переупорядочения столбцов в объект отправленных параметров и сохранить его. туда.

    06.09.2018
    Новые материалы

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

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

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

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

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

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

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