intégration ui de vue2+kendo
Cette fois, je vais vous présenter l'intégration UI de vue2+kendo. Quelles sont les précautions lors de l'utilisation de l'intégration ui de vue2+kendo. Ce qui suit est un cas pratique, jetons un coup d'œil.
/* * common.js *///配置区kendo.culture("zh-CN");//中文显示const defaultGridOptions = { sortable: true, groupable: false, selectable: true, editable: false, resizable: true, reorderable: true, pageable: { refresh: true, pageSize: 20, pageSizes: [20, 50, 100, 200] } }; //表格默认配置--用于配置复用//函数区function getContainerH() { //获取表内容主体(包含头部标题与底部分页栏)高度 var nBar = $(".nav-bar");//<=====我这里定义的是搜索栏 var outerHeight = 0; $(".nav-bar").each(function(i, v) { outerHeight += $(v).outerHeight(); }); return window.innerHeight - outerHeight - 1; }function resizeGrid(containerHeight) { //设置表内容高度 containerHeight = (containerHeight == undefined ? getContainerH() : containerHeight); $('.k-grid.dynamicHeight,.dynamic-height.k-grid').each(function() { var grid = $(this), h1 = grid.find('div.k-grid-toolbar').outerHeight() || 0, h2 = grid.find('div.k-grouping-header').outerHeight() || 0, h3 = grid.find('div.k-grid-header').outerHeight() || 0, h4 = grid.find('div.k-grid-pager').outerHeight() || 0, ch = containerHeight - 2 - h1 - h2 - h3 - h4; if(ch > 0) { grid.find('div.k-grid-content').css('maxHeight', ch + 'px'); grid.find('div.k-grid-content-locked').css('maxHeight', ch + 'px'); } }); }function getDataSourceConfig(idField, readUrl, filter) { //表格配置初始化 return { schema: { model: { id: idField }, data: function(response) { return response.data || response; }, total: 'total' }, transport: { parameterMap: function(options) { return kendo.stringify(options); }, read: getTransport(readUrl) }, pageSize: 20, serverPaging: true, serverFiltering: true, serverSorting: true, filter: filter, selectable: "row" }; }function getDataSource(idField, readUrl, filter) { //创建绑定数据 return new kendo.data.DataSource(getDataSourceConfig(idField, readUrl, filter)); }function getTransport(url, type, dataType, contentType) {//数据源地址配置---可用于表格以外kendo UI组件配置 return { contentType: contentType || 'application/json', dataType: dataType || 'json', type: type || 'POST', async: false, url: url }; }function toGridFilter(o) { //转为表 filter 对象 var filter = { logic: o.logic || "and", filters: [] }; for(var i in o) { var m = o[i]; if(i === "logic") { continue; } if($.trim(m) && (typeof m === "string" || typeof m === "number")) { filter.filters.push({ field: i, value: $.trim(m), operator: "eq" }); } else if(typeof m === "object" && $.trim(m.value)) { if(m.operator === "in") { var value = m.value.split("/"); filter.filters.push({ field: i, value: value, operator: m.operator || "in" }); } else { filter.filters.push({ field: i, value: $.trim(m.value), operator: m.operator || "eq" }); } } else if(typeof m === "object" && m.type === "range") { if(m.start) filter.filters.push({ field: i, value: m.start, operator: "gte" }); if(m.end) { filter.filters.push({ field: i, value: m.end, operator: "lte" }); } } } return filter; }//......以下是根据自己的项目进行配置
2. Page
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>demo</title> <head> <meta charset="UTF-8"> <title></title> <!--以下地址应用根据实际情况使用--> <link href="../plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="../plugins/kendoui/styles/kendo.common-material.min.css" rel="stylesheet"> <link href="../plugins/kendoui/styles/kendo.material.min.css" rel="stylesheet"> <script src="../public/js/vue.min.2.1.10.js"></script> <script src="../public/js/jquery.3.1.1.min.js"></script> <script src="../plugins/kendoui/js/kendo.all.min.js"></script> <script src="../plugins/kendoui/js/cultures/kendo.culture.zh-CN.min.js"></script> <link href="../public/css/main_layout.css" rel="stylesheet" data-info="这个css是对全局页面样式的覆盖重写"> <script src="./common.js"></script> </head> </head> <body> <div id="app"> <!--搜索栏+按钮栏--> <div class="nav-bar"> <div class="btn-group"> <button type="button" data-target="#modal_theme_primary" class="btn btn-default" @click="addPage()"><i class="icon-plus2"></i>新增</button> <button type="button" class="btn btn-default" @click="del()"><i class="icon-cross2"></i>删除</button> </div> <div class="input-group" style="float: right;"> <input type="text" class="form-control" v-model="search.searchText"> <div class="input-group-btn"> <button type="button" class="btn btn-default" aria-label="Help" @click="search.searchText=''"><span class="icon-rotate-cw3"></span></button> <button type="button" class="btn btn-default" @click="onSearch"><i class="icon-search4"></i>搜索</button> </div> </div> </div> <!--主体--> <div id="main-content"> <div class="grid-wrapper"> <!--kendo grid--> <div id="gridUser" class="dynamic-height"></div> </div> </div> </div> <script> /* *Object.assign(obj1,obj3,obj3,...) 用来对象合并 这里讲两个配置合并 */ var gridOptions2 = Object.assign(defaultGridOptions, { dataSource: {},//初始化空数据源对象 columns: [{//列头配置-详情请转 field: "rownumber", title: " ", template: (dataItem) => app.dataSource.data().indexOf(dataItem) + 1,//<===计算表行序号并显示出来 width: 45 }, { title: "用户名",//绑定的ID field: "username",//绑定的文字 template: "<a title='修改' onclick=\"app.addPage('create?userId=#= userId #')\" >#= username# </a>",//自定义显示模板 width: 200 }, { title: "姓名", field: "fName", width: 200 }, { title: "邮箱", field: "email", width: 200 }, { title: "工号", field: "number", width: 200 }/**略**/], selectable: "multiple"//多选----可选值row cell;multiple, row ;multiple cell }); var app = new Vue({ el: "#app", data: { search: { searchText: "搜索文字", }, grid: null, //kendo grid对象 gridOptions: gridOptions2, //kendo grid对象配置 dataSource: {} //kendo grid对象数据源 }, methods: { reLoad: function() {//初始化grid this.gridOptions.dataSource = this.dataSource = getDataSource("roleId", "./测试数据.json"); this.grid = $("#gridUser").kendoGrid(this.gridOptions); resizeGrid(); }, addPage: function() {//<====添加页面与修改页面是共用的 alert("弹出添加页面遮罩层"); }, del: function() { var tmpGrid = this.grid.data("kendoGrid"); var selectedIds = [];//对象Id集合 var rows = tmpGrid.select(); //获取表格选中行 if(!rows.length > 0) { alert("请选择"); return; } if(!confirm("确定要删除吗?")) return; rows.each(function(i, row) { var dataItem = tmpGrid.dataItem(row); if(dataItem) { selectedIds.push(dataItem.userId); } }); $.ajax({ type: "POST", url: "/删除地址", data: selectedIds, success: function(data) { /***成功 **/ }, error: function() { /***错误**/ } }); }, onSearch: function() { console.log("搜索", this.search, " ", toGridFilter(this.search)); app.gridOptions.dataSource.filter(toGridFilter(this.search)); // } } }); $(window).resize(function() {//表高度自适应 resizeGrid(); }); app.reLoad(); </script> </body> </html>
3. Format des données de test
/** *测试数据.json */{ "total": 40,//总数 "data": [//返回的当前数据 { "userId": "uuid", "username": "ZHANGSHAN", "password": "123456", "email": "ZHANGSHAN@xx.xxx", "number": "XXX001", "fName": "张三" } //....... ] }
Je crois que vous lirez le cas dans cet article Vous maîtrisez la méthode. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture connexe :
Comment créer un composant d'aperçu de téléchargement d'image dans H5
Quelle est la différence entre python3 et JS
Explication détaillée sur l'utilisation de flv.js
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Avec le développement d’Internet, l’analyse des mégadonnées et le traitement de l’information en temps réel sont devenus un besoin important pour les entreprises. Afin de répondre à de tels besoins, les bases de données relationnelles traditionnelles ne répondent plus aux besoins du développement commercial et technologique. Au lieu de cela, l’utilisation de bases de données NoSQL est devenue une option importante. Dans cet article, nous aborderons l'utilisation de SpringBoot intégré aux bases de données NoSQL pour permettre le développement et le déploiement d'applications modernes. Qu'est-ce qu'une base de données NoSQL ? NoSQL n'est pas seulement du SQL

UniApp réalise l'intégration parfaite du framework Vue.js Introduction : UniApp est un outil de développement multiplateforme basé sur le framework Vue.js. Il peut compiler un projet Vue.js en applications pour plusieurs plateformes différentes, telles que iOS, Android, petits programmes, etc. L'avantage d'UniApp est qu'il permet aux développeurs d'écrire un seul ensemble de code et de s'adapter à plusieurs plates-formes en même temps, accélérant ainsi l'efficacité du développement et réduisant les coûts de développement. Ce qui suit présentera comment utiliser UniApp pour obtenir une intégration parfaite du framework Vue.js.

Changements dans Vue3 par rapport à Vue2 : intégration plus puissante de la bibliothèque de requêtes réseau Alors que Vue.js continue de se développer et de se mettre à jour, Vue3, en tant que prochaine version de Vue.js, apporte des changements et des améliorations passionnants. L’un des changements les plus importants concerne l’intégration plus puissante de la bibliothèque de requêtes réseau. Dans Vue2, nous utilisons généralement des bibliothèques tierces telles que axios pour effectuer des requêtes réseau. Dans Vue3, l'équipe de développement de Vue a fourni une bibliothèque de requêtes réseau intégrée, qui nous offre une méthode plus intuitive et flexible.

Conseils pratiques pour intégrer PHPcms avec d'autres systèmes Avec le développement continu de la technologie Internet, le domaine du développement de sites Web est devenu plus diversifié et complexe. Dans les projets réels, nous sommes souvent confrontés à des situations dans lesquelles différents systèmes doivent être intégrés, ce qui nécessite que nous ayons certaines compétences et expériences pour résoudre ces problèmes. Cet article présentera quelques conseils pratiques et exemples de code spécifiques pour l'intégration du système PHPcms avec d'autres systèmes afin d'aider les développeurs à mieux faire face aux défis. 1. Principes de base de l'intégration Lors de l'intégration d'un système, il est d'abord nécessaire de

Avec le développement rapide d'Internet, la demande d'applications Web augmente également et les tests de logiciels, en tant qu'élément important pour garantir la qualité des applications d'entreprise, sont devenus de plus en plus importants. Cependant, les méthodes de test manuelles traditionnelles sont longues, laborieuses et sujettes aux erreurs. Les tests automatisés sont un moyen de résoudre ce problème. Les tests automatisés des applications Web sont devenus un moyen de test courant. Parmi eux, l'utilisation de WebDriver pour les tests automatisés des applications Web est une méthode très populaire. Cet article

Compréhension approfondie des principes d'intégration et de mise en œuvre de Spring et Mybatis 1. Introduction Spring et Mybatis sont deux frameworks open source largement utilisés dans le développement Java. Spring est un framework de développement d'applications complet qui fournit de nombreuses fonctionnalités telles que l'injection de dépendances, l'AOP, etc. Mybatis est un framework de persistance grâce auquel la base de données peut être facilement exploitée. L'intégration des deux permet de mieux exploiter leurs avantages et d'améliorer l'efficacité du développement et la qualité du code. 2. Principe d'intégration Printemps I

Lors du travail de groupe, différents étudiants feront différentes parties des présentations. Alors, comment fusionner plusieurs présentations en une seule est un problème, c'est-à-dire comment intégrer plusieurs ppt ensemble ? Je pense que de nombreux amis ont rencontré des problèmes similaires, alors comment résoudre de tels problèmes ? Ci-dessous je vais partager avec vous la méthode pour résoudre ce problème, j'espère que cela pourra vous aider. Ouvrez d'abord l'un des nombreux ppts, puis sélectionnez "Réutiliser la diapositive" dans Nouvelle diapositive dans l'onglet Accueil. Cliquez sur « Parcourir » dans les diapositives réutilisées, sélectionnez le ppt réalisé par les autres membres de l'équipe et vous pourrez voir que toutes les diapositives sont affichées. Sélectionnez la position où vous souhaitez insérer la diapositive dans la vue normale à gauche (cliquez simplement sur la diapositive

Utiliser Webman pour mettre en œuvre l'intégration des médias sociaux sur les sites Web Avec l'essor des médias sociaux, de plus en plus de sites Web commencent à intégrer les médias sociaux dans leurs propres plateformes. Cette décision peut non seulement accroître la fidélité des utilisateurs au site Web, mais également accroître la participation et le partage des utilisateurs. Cet article présentera comment utiliser le framework Webman pour mettre en œuvre l'intégration des médias sociaux sur le site Web et sera accompagné d'exemples de code correspondants. Webman est un framework Web développé sur la base du langage Kotlin. Son concept de conception est simple, léger et facile à étendre. Pour utiliser Nous
