Hi all,
i'm struggling to achive a simple task: double click on a row to call a method. How can i do that?
what i'm expecting is simple:
<
Grid
:data-items
=
"gridResult"
:columns
=
"columnsToDisplay"
:resizable
=
"true"
:pageable
=
"pageAble"
:pageSize
=
"pageSize"
@
dblclick
=
"callMyMethodForDoubleClick"
>
</
Grid
>
something like this
Hi everyone,
I have an issue using the KendoEditor with Vue.js. Here is my code :
HTML part :
<div id="vueapp" class="vue-app">
<form id="forme">
<input type='text' class="k-textbox" name='title' id="title" v-model="request.title" />
</form>
<kendo-editor :resizable-content="true"
:resizable-toolbar="true"
:value="request.desc"
style="height:280px"
rows="10"
cols="30">
</kendo-editor>
</div>
Script part for vue:
var vm = new Vue({
el: '#vueapp',
data: function() {
return {
request: {
title: "",
desc: "Write here..."
},
has_deadline: false
}
}, methods: {
test: function(){ alert(this.request.title + this.request.desc)}
}
});
Then, when I change the content of the input "title" (let's say I do "title1") and call the "test" method, an alert comes up with "title1 Write here...".
But when I change the content of the editor (for example, "description1"), the alert comes up with "title1 Write here..." instead of "title1 description1" !
Could someone explain me what I did wrong ? I can not find how to figure out.
Thanks for your help,
Louis
I see this error when I'm going to convert data of treeview's datasource to stringify.
I use kendo vue js like :
JSON.stringify( ....data(
"kendoTreeview"
).dataSource.data() )
Example usage of KendoUI Grid with Vuejs 3 and the composition API
https://stackblitz.com/edit/vwryht
It's a fork of the original sample: https://www.telerik.com/kendo-vue-ui/components/grid/sorting/
Hallo,
I am trying to include a custom toolbar into the vue template.
<template>
<div class="page">
<h1>Author</h1>
<client-only>
<kendo-datasource ref="ds"
:schema-model-id="'id'"
:schema-model-fields="model"
:schema-data="schema"
:transport-create-beforeSend="onBeforeSend"
:transport-create-url="'http://192.168.1.11:8000/graphql'"
:transport-create-content-type="'application/json'"
:transport-create-type="'POST'"
:transport-create-data="additionalParamsOnCreate"
:transport-read-beforeSend="onBeforeSend"
:transport-read-url="'http://192.168.1.11:8000/graphql'"
:transport-read-content-type="'application/json'"
:transport-read-type="'POST'"
:transport-read-data="additionalParamsOnRead"
:transport-update-beforeSend="onBeforeSend"
:transport-update-url="'http://192.168.1.11:8000/graphql'"
:transport-update-content-type="'application/json'"
:transport-update-type="'POST'"
:transport-update-data="additionalParamsOnUpdate"
:transport-destroy-beforeSend="onBeforeSend"
:transport-destroy-url="'http://192.168.1.11:8000/graphql'"
:transport-destroy-content-type="'application/json'"
:transport-destroy-type="'POST'"
:transport-destroy-data="additionalParamsOnDestroy"
:page-size="20"
:transport-parameter-map="parameterMap">
</kendo-datasource>
<kendo-grid ref ="mainGrid"
:data-source-ref="'ds'"
:edit-field="'inEdit'"
:navigatable="true"
:pageable="true"
:editable="true">
<!-- first try -->
<!--
:toolbar="["create"]"
-->
<!-- second try -->
<!--
<GridToolbar class="k-header k-grid-toolbar">
<button href="#" title="Add new" class="k-button k-button-icontext k-grid-add" @click="insert">
Add new
</button>
</GridToolbar>
-->
<!-- third try -->
<div class="k-header k-grid-toolbar">
<a role="button" class="k-button k-button-icontext k-grid-add" href="#"><span class="k-icon k-i-plus" @click="testClick"></span> Command</a>
</div>
<kendo-grid-column :field="'id'"
:title="'ID'"
:width="80">
</kendo-grid-column>
<kendo-grid-column :field="'firstName'"
:title="'firstName'"
:width="80">
</kendo-grid-column>
<kendo-grid-column :field="'lastName'"
:title="'lastName'"
:width="80">
</kendo-grid-column>
</kendo-grid>
</client-only>
<kendo-notification ref="popupNotification"
@show="onShow"
@hide="onHide">
</kendo-notification>
</div>
</template>
<script>
import { Button } from '@progress/kendo-buttons-vue-wrapper';
import { Grid, GridColumn } from '@progress/kendo-grid-vue-wrapper';
import { KendoDataSource } from '@progress/kendo-datasource-vue-wrapper';
import { Notification } from '@progress/kendo-popups-vue-wrapper';
import { READ_AUTHORS_QUERY, ADD_AUTHOR_QUERY, UPDATE_AUTHOR_QUERY,DELETE_AUTHOR_QUERY } from '../graphql/author'
export default {
name: 'App',
components: {
'k-button': Button,
'kendo-grid': Grid,
'kendo-grid-column': GridColumn,
'kendo-notification': Notification,
},
created: function() {
console.log('created');
},
mounted: function() {
console.log('mounted');
this.popupNotificationWidget = this.$refs.popupNotification.kendoWidget();
console.log('mounted2');
},
methods: {
insert: function() {
this.popupNotificationWidget.show('insert');
},
onClick: function (ev) {
console.log("Button clicked!");
},
testClick: function (ev) {
this.popupNotificationWidget.show('testClick');
console.log("test clicked!");
},
onShow: function (e) {
console.log("Show")
},
onHide: function (e) {
console.log("Hide")
},
onBeforeSend: function(req) {
let component = this;
// req.setRequestHeader("Authorization", "bearer ...tokenstring...");
},
additionalParamsOnCreate: function(model) {
return {
query: ADD_AUTHOR_QUERY,
variables: {author: model }
};
},
additionalParamsOnRead: function(model){
console.log('additionalParamsOnRead')
return {
query: READ_AUTHORS_QUERY,
};
},
additionalParamsOnUpdate: function(model){
return {
query: UPDATE_AUTHOR_QUERY,
variables: {author: model }
};
},
additionalParamsOnDestroy: function(model){
return {
query: DELETE_AUTHOR_QUERY,
variables: {author: model }
};
},
parameterMap: function(options, operation) {
return kendo.stringify({
query: options.query,
variables: options.variables
});
},
schema: function (response) {
var data = response.data;
if (data.authors) {
return data.authors;
} else if (data.AddAuthor) {
return data.AddAuthor;
} else if (data.UpdateAuthor) {
return data.UpdateAuthor;
} else if (data.DeleteAuthor) {
return data.DeleteAuthor;
}
},
},
data: function() {
return {
model: {
id: "id",
fields: {
id: { editable: false, nullable: true },
firstName: { type: "string" },
lastName: { type: "string" }
}
}
}
}
}
</script>
<style>
</style>
The fist try with built-in function works: a new empty record ist displayed in first lineof the grid.
The second and third try call the methods, but no new empty record is generated.
I cannot get this to work - is this possible?
Regards,
Michael
Is it possible to bind buttons created in a ToolbarTemplate for a grid in vuejs ?
The purpose is to enable/disable button if a row is selected or not
My Update query:
export const UPDATE_AUTHOR_QUERY = "mutation UpdateAuthorMutation($Author: AuthorInput!) {" +
"updateAuthor(input: $author){" +
"id," +
"firstName," +<
br
> "lastName" +<
br
> "}"+<
br
> "}";
additionalParamsOnUpdate:
function
(model){
return
{
query: UPDATE_AUTHOR_QUERY,
variables: model <br>
};
},
Hello,
We use kendo for Vue and tried implementing a DateInput element in our Vue app.
When we try to use this element on a smartphone, we hoped it will use the OS date input, just like it works with any <input> element of type “date”. But we found it is rendered as type “text”.
This means the UX is not as good as we hoped it will be.
Is there a way to render it as <input> of type “date” so it will behave accordingly?
https://www.telerik.com/kendo-vue-ui/components/dateinputs-wrapper/dateinput/
Thanks,
Ron.