|
<template>
<div id="app">
<Button type="button" @click="change">Switch to change data</Button>
<Button type="button" @click="initial">Switch to your initial data</Button>
<ejs-grid
ref="grid"
:dataBound="dataBound"
:editSettings="editSettings"
height="200"
:allowSorting="true"
:dataSource="data"
>
<e-columns>
<e-column field="OrderID" headerText="Order ID" width="150" textAlign="Left"></e-column>
<e-column field="CustomerID" headerText="Customer ID" width="150" textAlign="Left"></e-column>
<e-column field="ShipCountry" headerText="Ship Country" width="150" textAlign="Left"></e-column>
</e-columns>
</ejs-grid>
<div id="head">
<div id="Grid"></div>
</div>
</div>
</template>
<script>
import Vue from "vue";
import { GridPlugin, Edit, Toolbar, Sort } from "@syncfusion/ej2-vue-grids";
Vue.use(GridPlugin);
var data = [
{ OrderID: 10248, CustomerID: "VINET", ShipCountry: "USA" },
{ OrderID: 10249, CustomerID: "Tomps", ShipCountry: "Germany" }
];
var datas = [
{ EmployeeID: 1084, FirstName: "Nancy", LastName: "David" },
{ EmployeeID: 1085, FirstName: "Micheal", LastName: "Martin" }
];
export default {
data() {
return {
data: data,
grid: "",
editSettings: {
allowEditing: true,
allowAdding: true,
allowDeleting: true,
mode: "Dialog"
},
toolbar: ["Add", "Edit", "Delete", "Update", "Cancel"]
};
},
provide: {
grid: [Edit, Toolbar, Sort]
},
methods: {
dataBound() {
if (window.flag) { //set the sorted column again to the initial data after switch from another data
window.flag = false;
var grid = document.getElementsByClassName("e-grid")[0]
.ej2_instances[0];
grid.sortSettings.columns = window.sortobj;
}
},
initial() {
window.flag = true;
var grid = document.getElementsByClassName("e-grid")[0].ej2_instances[0];
grid.columns = [ //switch to the initial data
{ field: "OrderID", width: "120" },
{ field: "CustomerID", width: "120" },
{ field: "ShipCountry", width: "120" }
];
grid.dataSource = data;
},
change() {
var grid = document.getElementsByClassName("e-grid")[0].ej2_instances[0];
window.sortobj = grid.sortSettings.columns; //get the sorted columns here
grid.columns = [ //switch another data
{ field: "EmployeeID", width: "120" },
{ field: "FirstName", width: "120" }
];
grid.dataSource = datas;
}
}
};
</script>
<style>
@import "https://cdn.syncfusion.com/ej2/material.css";
</style>
|