Мне нужно несколько функций в AG Grid

Я работаю над AG Grid в ASP.net MVC. Мне также удалось загрузить сетку и ее столбцы. Одна из функций, которую я хотел реализовать, заключалась в том, чтобы сделать ячейку редактируемой, предоставить раскрывающийся список, и я смог это сделать. Но я хотел добавить в раскрывающийся список дополнительные функции:

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

  2. Я хочу установить заполнитель по умолчанию, например «выбрать значение» или что-то в этом роде, чтобы пользователь мог понять, что делать.

Я попробовал следующее:

var options = [{
    key: "0",
    value: "select value"
  }, //added this to make the default value but didn't work as expected.
  {
    key: "1",
    value: "option 1"
  },
  {
    key: "2",
    value: "option 2"
  }
]
var columnsDefs = [{
    headerName: "Id",
    field = "Id"
  },
  {
    headerName: "column 1",
    field = "column1"
  },
  {
    headerName: "select column",
    field: "selectcolumn",
    editable: true,
    cellEditor: "agSelectCellEditor",
    cellEditorParams: {
      values: options.map(option => option.value)
    }
  }
]
var gridOptions = {
  defaultColDef: {
    //default values
  },
  columnDefs: columnDefs,
  rowSelection: 'multiple',
  // the below piece of code helped me with clicking the cell once and the drop down appears. But, still, when i single click, a drop down pops up but again i have to click the drop down to display the list of values.
  onCellClicked: function(params) {
    if (params.column.colId === "selectcolumn") {
      params.api.startEditingCell({
        rowIndex: params.rowIndex,
        colKey: "selectcolumn"
      })
    }
  }
  onGridReady: function(params) {
    params.api.setRowData(rowData);
  }
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

var gridOptions = {
 singleClickEdit: true,  // single click event
  defaultColDef: {
    //default values
  },
  columnDefs: columnDefs,
  rowSelection: 'multiple',
  // the below piece of code helped me with clicking the cell once and the drop down appears. But, still, when i single click, a drop down pops up but again i have to click the drop down to display the list of values.
  onCellClicked: function(params) {
    if (params.column.colId === "selectcolumn") {
      params.api.startEditingCell({
        rowIndex: params.rowIndex,
        colKey: "selectcolumn"
      })
    }
  }
  onGridReady: function(params) {
    params.api.setRowData(rowData);
  }
}
  1. Что касается доступного местоположения по умолчанию, вы можете попробовать valueFormatter. Если params.newValue имеет значение null, это означает отображение «пожалуйста, выберите»:

    { headerName: "выбрать столбец", поле: «выбрать столбец», редактируемый: правда, cellEditor: "agSelectCellEditor", cellEditorParams: { значения: options.map((option) => option.value), }, cellRenderer: (params) => { //используем этот API const {значение} = параметры; возвращаемое значение ?? «пожалуйста, выберите»; }, },

По первому пункту меня все устраивает. Но во втором случае я использовал форматирование значений, но все значения раскрывающегося списка изменились на «выбрать значение». Любое другое решение? Или я поместил этот фрагмент кода где-то еще?

Aman Kadakuntla 29.08.2024 13:49

Я пересмотрел второй пункт, API cellRenderer должен быть в порядке.

wen3s 30.08.2024 03:14

Спасибо! В выпадающем списке около 2000+ записей. Кажется, что сетка реагирует немного медленно. Есть ли другой способ повысить производительность?

Aman Kadakuntla 31.08.2024 11:36

Я также столкнулся с множеством проблем с официальным API выбора, связанным с поиском в раскрывающемся списке JSON, пейджингом и виртуальной прокруткой. Кажется, хорошего решения нет. Вы можете попробовать API-интерфейс cellEditor, который использует пользовательские компоненты, с помощью которых вы можете встроить собственный раскрывающийся компонент, чтобы вы могли выполнять свои собственные запросы на разбиение по страницам или виртуальную прокрутку.

wen3s 02.09.2024 09:13

Другие вопросы по теме