#javascript #vue.js #ag-grid #ag-grid-vue
Вопрос:
У меня есть некоторые проблемы с ag-grid
таблицей, я использую Vue.js
фреймворк.
Я пытаюсь импортировать выбранные данные в эту таблицу, например:
у меня загружены некоторые данные, и я выбираю несколько строк, есть кнопка для обновления этих данных, но если данные обновляются, это очищает выбранные данные. У меня все еще есть это состояние с сохраненными выбранными данными.
Итак, вот мой шаблон:
<b-button v-ripple.400="'rgba(0, 207, 232, 0.15)'"
variant="outline-info"
pill
@click="synchronization"
>
Synchronize
<b-spinner v-if="syncing" small class="mr-1" label="Small Spinner" />
</b-button>
<div class="order-table">
Selected: {{ this.selectedDataStringPresentation }}
<ag-grid-vue style="width: 100%; height: 500px;"
class="ag-theme-alpine"
:gridOptions="gridOptions"
:columnDefs="columnDefs"
:rowData="ordersList"
rowSelection="multiple"
rowMultiSelectWithClick="true"
@selection-changed="getSelectedRows"
:animateRows="true"
:floatingFilter="true"
>
</ag-grid-vue>
</div>
Как вы видите, у меня есть кнопка и реализована ag-сетка.
Вот как getSelectedRows
выглядит эта функция:
getSelectedRows() {
this.selectedNodes = this.gridApi.getSelectedRows();
this.selectedData = this.selectedNodes.map(node => node);
this.selectedDataStringPresentation = this.selectedData.map(node => node.id).join(', ');
}
И это columnDefs
пример и некоторые gridOptions
(я не знаю, что это такое):
this.gridOptions = {};
this.columnDefs = [{
rowMultiSelectWithClick: true,
headerName: 'ID',
field: 'id',
filter: true,
maxWidth: 50,
resizable: true,
pinned: true,
cellRenderer: (params) => {
const route = {
name: "orders-view",
params: {
id: params.value
}
};
const link = document.createElement("a");
link.href = this.$router.resolve(route).href;
link.innerText = params.value;
link.addEventListener("click", e => {
e.preventDefault();
this.$router.push(route);
});
return link;
}
}]
Как я могу загрузить сохраненные выбранные данные?