|
<template>
<div id="app">
<div>
<ejs-grid
ref="grid"
:dataSource="data"
:allowSorting="true"
:toolbar="toolbar"
:editSettings="editSettings"
:toolbarClick="clickHandler"
height="273px"
id="grid"
>
<e-columns>
<e-column field="CaseID" headerText="Order ID" :isPrimaryKey="true" width="100"></e-column>
<e-column
field="CustomerID"
headerText="Customer ID"
:validationRules="customerIDRules"
textAlign="left"
></e-column>
</e-columns>
</ejs-grid>
</div>
</div>
</template>
<script>
import Vue from "vue";
import { GridPlugin, Toolbar, Edit, Sort } from "@syncfusion/ej2-vue-grids";
import { ButtonPlugin } from "@syncfusion/ej2-vue-buttons";
Vue.use(ButtonPlugin);
Vue.use(GridPlugin);
export default {
name: "App",
data: () => {
return {
data: [
. . . .
],
formatOptions: { type: "date", format: "M/d/y" },
editSettings: {
allowEditing: true,
allowAdding: true,
allowDeleting: true,
mode: "Normal"
},
toolbar: [
"Add",
"Edit",
"Delete",
"Update",
"Cancel",
{ text: "Custom SaveButton", tooltipText: "Save", id: "savebutton" }
],
customerIDRules: {
required: true,
minLength: [
args => {
return args["value"].length >= 5;
},
"Need atleast 5 letters"
]
}
};
},
methods: {
clickHandler: function(args) { //toolbarclick event
if (args.item.id === "savebutton") {
this.$refs.grid.endEdit(); //you can save a record by invoking endEdit
}
}
},
provide: {
grid: [Toolbar, Edit, Sort]
}
};
</script> |
|
<script>
function begin(args) {
if (args.requestType === "save") {
//Call your API here
}
}
</script>
|
|
<script>
function begin(args) {
if (args.requestType === "save") {
//Call your API here
if (!this.$refs.grid.ej2Instances.editModule.formObj.validate()) {
args.cancel = true //you can prevent the save
}
}
}
</script>
|