|
<ejs-grid id="grid" ref="gridObj" :dataSource="data" :allowPaging="true" :editSettings='editSettings' :toolbar='toolbar'>
<e-columns>
.
.
<e-column field="CustomerID" headerText="Customer ID" :editTemplate='editTemplate' width="120"></e-column>
</e-columns>
</ejs-grid>
<style>
@import "https://cdn.syncfusion.com/ej2/material.css";
// Search icon for textbox rendered inside edit template
.e-search:before {
content: "\e993";
}
</style>
<script>
export default {
name: 'app',
data() {
return {
data: data,
editSettings: { allowEditing: true, allowAdding: true, allowDeleting: true, mode: 'Normal' },
toolbar: ['Add', 'Edit', 'Delete', 'Update', 'Cancel'],
editTemplate: () => {
return {
template: Vue.component("inputTemp", {
template: `<div class="e-input-group e-control-wrapper">
<input class="e-field e-input e-defaultcell" v-model="data.CustomerID" type="text" />
<span class="e-input-group-icon e-icons e-search" v-on:click="searchClick"></span>
</div>`,
data: function() {
return {
data: {}
};
},
methods: {
searchClick: args => {
// Icon span tag click event
// Here you can perform your required actions
}
}
})
};
</script> |
|
<template>
<div id="grid_parent">
<ejs-grid id="grid" ref="gridObj" :dataSource="data" :allowPaging="true" :editSettings='editSettings' :toolbar='toolbar'>
<e-columns>
.
.
<e-column field="CustomerID" headerText="Customer ID" :validationRules='customerIDRules' :editTemplate='editTemplate' width="120"></e-column>
</e-columns>
</ejs-grid>
</div>
</template>
<script>
import Vue from "vue";
export default {
name: 'app',
data() {
return {
data: data,
// Validation rules for the edit template column
customerIDRules: { required: true, minLength: 3 },
editTemplate: () => {
return {
template: Vue.component("inputTemp", {
template: `<div class="e-input-group e-control-wrapper">
// Column field name is set as input element name for default Grid column validation to occur
<input class="e-field e-input e-defaultcell" name="CustomerID" v-model="data.CustomerID" type="text" />
<span class="e-input-group-icon e-icons e-search" v-on:click="searchClick"></span></div>`,
.
.
}
</script> |