Как вызвать функцию, когда выбрана строка сетки SyncFusion

#vue.js #datagrid #syncfusion #ej2-syncfusion

#vue.js #datagrid #syncfusion #ej2-syncfusion

Вопрос:

Используя компонент SyncFusion Vue Grid, мне нужно вызвать функцию при выборе строки. Я попытался добавить столбец кнопок редактирования, но не могу найти документацию по правильному синтаксису, который можно использовать, чтобы заставить кнопки вызывать функцию. Я также пытался найти способ просто вызывать функцию всякий раз, когда щелкается сама строка, что было бы хорошо, если я могу определить, какая строка была нажата (получить доступ к значению одного из полей в строке). API выбора сетки выглядит так, как будто он предназначен только для программного выбора частей сетки, что я не пытаюсь сделать. Я попытался следовать этому объяснению, но я не мог понять синтаксис для получения кнопки для вызова функции. Я просмотрел документацию Vue и SyncFusion, но не могу найти конкретно, что я пытаюсь сделать. Ниже приведены соответствующие части кода.

 <template>
<ejs-grid>
    <e-columns>
        <e-column
            headerText='Buttons'
            width='120'
           :template='cTemplate'></e-column>
        <e-column
            field="name"
            headerText="Name"
            :isPrimaryKey="true"
            width="60"
            ></e-column>
        <e-column
            field="generalSubject"
            headerText="Subject"
            width="40"
            ></e-column>
    </e-columns>
</ejs-grid>
</template>

<script>
export default Vue.extend({  
  data() {
    cTemplate: function () { 
        return { template : Vue.component('columnTemplate',{ 
            template: `<button v-on:click="fx">Edit</button>`, // <-- call fx() syntax??
                data: function() { 
                    return { 
                        data: {} 
                    } 
                },
        })}
    },
    fx: function() { // do something },
  },  
});
</script>
  

Ответ №1:

Ваше требование может быть выполнено с помощью события rowSelected сетки. Это событие запускается при выборе строки сетки и возвращает сведения о текущей строке в аргументах события.

Пожалуйста, ознакомьтесь с приведенным ниже примером, подготовленным на основе этого, для справки,

Пример: https://codesandbox.io/s/vue-forked-0knlb?file=/src/App.vue

Ссылка на API: https://ej2.syncfusion.com/vue/documentation/api/grid/#rowselected

Дайте нам знать, если вам нужна дополнительная помощь.

С уважением,

Sujith R