UI组件库Kendo UI for Vue原生组件中文教程:入门指南(三)

本文继续为大家介绍如何开始使用Kendo UI for Vue的原生组件开发,欢迎下载最新版控件体验!

在本文中,您将通过构建一个包含 Grid、DropDownList、Window 和设计主题的小应用程序来学习如何使用

6. 添加Kendo UI for Vue数据网格

Kendo UI for Vue Data Grid提供了100+个即用型功能,涵盖从分页、排序、过滤、编辑和分组到行和列虚拟化以及 Excel 导出的所有内容。在本节中,您将尝试其中的几个功能,但让我们从一个简单的网格开始。

将 Grid 组件、process包和products.json文件导入到 src/App.vue 文件中。

import products from './appdata/products.json';import { process } from '@progress/kendo-data-query';import { Grid } from '@progress/kendo-vue-grid';

添加下面的代码来创建一个绑定到您产品列表的网格,将其添加到src/App.vue 文件内模板中包含 DropDownList 的 <p> 之后。

<grid:data-items="products":columns="columns"></grid>

使用以下代码定义 Grid 组件:

export default {name: 'App',components: {'dropdownlist': DropDownList,'grid': Grid,},//..............

在数据选项中添加以下行:

data: function() {return {categories: categories,products: products,columns: [{ field: 'ProductName', title: 'Product Name'},{ field: 'UnitPrice', title: 'Price' },{ field: 'UnitsInStock', title: 'Units in Stock' },{ field: 'Discontinued'}]//..............}}

当你的浏览器刷新时,会看到第一个网格!很简单,但还不是很真实。

要填写此示例,让我们使用 Grid API 添加下面的功能列表。 通读特性,然后获取更新后的 App.vue 代码(如下),亲自尝试更新后的 Grid。

  • 向 Grid 添加高度样式来激活滚动。
  • 添加用户友好的列标题。
  • 格式化价格列中的数字。
  • 启用分页和排序,这将需要对应用程序代码进行一些添加,如下所述。
  • 将 Discontinued 列中的布尔值显示为复选框,为此将通过cell 属性和自定义组件自定义表格单元格渲染。

以下是我们如何实现上述功能:

  • 在 Grid 声明中分别启用每个数据操作(:pageable=”pageable” 和 :sortable=”sortable”),在数据选项中添加以下属性。
data: function() {return {//..............pageable: true,sortable: true,//..............}}
  • 配置数据操作设置和网格数据的初始状态,例如:
    • 最初的skip将是第一个。
    • 页面大小 (take) 将为 10。
    • 网格最初将按产品名称排序。
    • 将所有这些设置保存在数据属性中,并使用以下代码将它们添加到网格中:
data: function() {return {//..............skip: 0,take: 10,sort: [{ field: "ProductName", dir: "asc" }]//..............}}
  • 为了显示正确的 Grid 数据,我们将 Grid 绑定到函数的输出,替代直接绑定到 products 数组。将使用导入的进程函数,它是 kendo-data-query 包的一部分,该函数的结果将存储在 dataResult 数据属性中。
  • 定义一个 dataStateChange 处理程序,它做了两件事:
    • 在每次用户交互后通过 createAppState 函数更新 take、skip、filter 和 sort 数据属性的状态。
    • 数据属性更新后,该函数所做的第二件事是从流程函数中获取结果并将其设置为 dataResult 属性,这将导致 Grid 刷新并显示预期的数据。要显示应用的数据更改,我们必须将 Grid 的 data-items 属性更改为 :data-items=”dataResult”。
  • 为 Grid 的 Discontinued 字段定义模板,在 src/App.vue 文件的模板部分的 grid 标签内添加以下内容:
<template v-slot:discontinuedTemplate="{ props }"><td colspan="1"><input type="checkbox" :checked = props.dataItem.Discontinued disabled="disabled" /></td></template>

通过为 Discontinued 单元格添加单元格属性来编辑列数据属性。

columns: [{ field: 'ProductName', title: 'Product Name'},{ field: 'UnitPrice', title: 'Price' },{ field: 'UnitsInStock', title: 'Units in Stock' },{ field: 'Discontinued', cell: 'discontinuedTemplate' }]
  • 要尝试上述所有功能,请复制以下代码并将其粘贴到项目的 App.vue 文件中。
<template><div id="app"><h1>Hello Kendo UI for Vue!</h1><p><dropdownlist:data-items="categories":data-item-key="'CategoryID'":text-field="'CategoryName'":default-item="defaultItems"@change="handleDropDownChange"></dropdownlist>&nbsp; Selected category ID: <strong>{{this.dropdownlistCategory}}</strong></p><grid:data-items="dataResult":pageable="pageable":sortable="sortable":sort="sort":skip="skip":take="take":columns="columns"@datastatechange="dataStateChange":style="{ height: '400px' }"><template v-slot:discontinuedTemplate="{ props }"><td colspan="1"><input type="checkbox" :checked = props.dataItem.Discontinued disabled="disabled" /></td></template></grid></div></template><script>import categories from './appdata/categories.json';import products from './appdata/products.json';import { process } from '@progress/kendo-data-query';import { Grid } from '@progress/kendo-vue-grid';import { DropDownList } from '@progress/kendo-vue-dropdowns';import '@progress/kendo-theme-default/dist/all.css';export default {name: 'App',components: {'dropdownlist': DropDownList,'grid': Grid},data: function() {return {categories: categories,products: products,defaultItems: {CategoryID: null, CategoryName: "Product categories"},dropdownlistCategory: null,pageable: true,sortable: true,skip: 0,take: 10,sort: [{ field: "ProductName", dir: "asc" }],filter: null,columns: [{ field: 'ProductName', title: 'Product Name'},{ field: 'UnitPrice', title: 'Price' },{ field: 'UnitsInStock', title: 'Units in Stock' },{ field: 'Discontinued', cell: 'discontinuedTemplate' }],dataResult:[]}},created() {const dataState = {skip: this.skip,take: this.take,sort: this.sort,};this.dataResult = process(products, dataState);},methods: {handleDropDownChange (e) {this.dropdownlistCategory = e.target.value.CategoryID;if (e.target.value.CategoryID !== null) {this.filter = {logic: 'and',filters: [{ field: 'CategoryID', operator: 'eq', value: e.target.value.CategoryID }]}this.skip = 0} else {this.filter = []this.skip = 0}let event = {data:{skip: this.skip,take: this.take,sort: this.sort,filter: this.filter}};this.dataStateChange(event);},createAppState: function(dataState) {this.take = dataState.take;this.skip = dataState.skip;this.sort = dataState.sort;},dataStateChange (event) {this.createAppState(event.data);this.dataResult = process(products, {skip: this.skip,take: this.take,sort: this.sort,filter: this.filter});}}}</script>

Kendo UI for Vue | 下载试用

Kendo UI致力于新的开发,来满足不断变化的需求。Kendo UI for Vue使用旨在提高性能和丰富用户体验的Vue组件,帮助开发人员构建下一代应用程序。它是为Vue技术框架提供可用的Kendo UI组件,以便更快地构建更好的Vue应用程序。


Telerik_KendoUI产品技术交流群:726377843    欢迎一起进群讨论

了解最新Kendo UI最新资讯,请关注Telerik中文网!

315活动正式开启
标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月11日
下一篇 2022年5月11日

相关推荐

发表回复

登录后才能评论