Я работаю над AG Grid в ASP.net MVC. Мне также удалось загрузить сетку и ее столбцы. Одна из функций, которую я хотел реализовать, заключалась в том, чтобы сделать ячейку редактируемой, предоставить раскрывающийся список, и я смог это сделать. Но я хотел добавить в раскрывающийся список дополнительные функции:
Я хочу, чтобы ячейка отображала раскрывающийся список, когда я нажимаю на нее один раз. Теперь мне нужно дважды щелкнуть мышью, после чего появится раскрывающийся список.
Я хочу установить заполнитель по умолчанию, например «выбрать значение» или что-то в этом роде, чтобы пользователь мог понять, что делать.
Я попробовал следующее:
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), где весь контент загружается асинхронно.
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);
}
}
Что касается доступного местоположения по умолчанию, вы можете попробовать valueFormatter. Если params.newValue имеет значение null, это означает отображение «пожалуйста, выберите»:
{ headerName: "выбрать столбец", поле: «выбрать столбец», редактируемый: правда, cellEditor: "agSelectCellEditor", cellEditorParams: { значения: options.map((option) => option.value), }, cellRenderer: (params) => { //используем этот API const {значение} = параметры; возвращаемое значение ?? «пожалуйста, выберите»; }, },