Мне нужно несколько функций в 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);
  }
}

🤔 А знаете ли вы, что...
JavaScript используется для разработки современных одностраничных приложений (SPA), где весь контент загружается асинхронно.


50
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 {значение} = параметры; возвращаемое значение ?? «пожалуйста, выберите»; }, },


Интересные вопросы для изучения

Невозможно заставить JavaScript отправить форму при выполнении условияJavascript, сопоставьте массив объектов для возврата нового массиваКак вернуть правильный массив для f (0), оптимизированного для хвостового вызова Фибоначчи?Мой цикл for не работает, и я не знаю, почему. Он даже ничего не выводит на консольПредупреждение: Страница: поддержка defaultProps будет удалена из функциональных компонентов в будущем основном выпускеProcess.Start(...) внезапно завершается с ошибкой при вызове ASP.NET MVC 5, работающем в IIS в Windows 10 и Windows Server 2019Как найти элементы HTML и элементы управления ASP, имеющие ссылки на классы CSS, не имеющие определения в Visual StudioПередача IQueryable от контроллера к сервису и получение обратно конкретного спискаПочему C# позволяет расширять область действия переменной по всему блоку независимо от порядка объявления? (Ссылка на книгу: «C#10 в двух словах», Джозеф Альбахари)Невозможно создать приложение Blazor в Mac OS, которое работает в Windows