当前位置: 首页 > news >正文

TinySnippet轻UI组件开发系列教程 — DataGrid选择事件

应用场景

DataGrid选择一条记录后,希望能够

  • 调用纳流
  • 或者打开指定的页面
    或者当鼠标悬停在一行时
  • 弱出一个指定的页面在右下角(移开就关闭弹出页)

这些都是我们能够实现的

实现过程

本文以调用纳流为例

  • 下载UI组件 TinySnippet-v4.1.2
  • 导入UI组件
  • 新建实体image.png
  • 自动生成页面image.png
  • 配置页面Entity_Overviewimage.png

注意TinySnippet要紧挨在一起,这样它就能自动检查到DataGrid

  • 配置TinySnippet组件
    • 配置纳流参数和纳流image.png
    • 配置行为代码image.png
  • 配置纳流image.png

运行效果

image.png

行为代码

let DatagridId = /*"grid1"*/ null;const widget = this;
let dataGridWidget;async function onLoad() {dataGridWidget = (function findDatagrid(domNode, DatagridId) {if (!DatagridId) {// 查找domNode的兄弟元素中的类名为mx-datagrid的元素const siblingElements = domNode.parentNode.children;for (let i = 0; i < siblingElements.length; i++) {const sibling = siblingElements[i];if (sibling.classList.contains("mx-datagrid")) {return dijit.registry.byNode(sibling);}}} else {// 查找selector为".mx-name-" + DatagridId的元素const selector = ".mx-name-" + DatagridId;return dijit.registry.byNode(widget.mxform.domNode.querySelector(selector));}// 如果没有找到匹配的元素,返回null或者适合的默认值return null;})(widget.domNode, DatagridId);const [html, aspect, on, { Big }, dom, mouse, lang] = await injectDeps(["dojo/dom-construct","dojo/aspect","dojo/on","big.js","mxui/dom","dojo/mouse","dojo/_base/lang",]);aspect.after(dataGridWidget,"_shareWidgetSelection",lang.hitch(widget, onSelectRow));
}function onSelectRow() {const selectGuid = dataGridWidget.selection[0];const rowObj = dataGridWidget._mxObjects.find((e) => e._guid == selectGuid);if (rowObj && !mendix.lang.objectIsEmpty(widget.onclicknf2)) {const mxContext = new mendix.lib.MxContext();mxContext.setContext(rowObj);mx.data.callNanoflow({ nanoflow: widget.onclicknf2, context: mxContext });}
}function getRowData(e) {const rowNode = e.node;let tdNode = e.event.target;if (!dataGridWidget.domData(tdNode, "name")) {tdNode = mxui.dom.getAncestorNode(tdNode, "TD", 3);}const gridRow = parseInt(dataGridWidget.domData(rowNode, "gridrow"));const rowObj = dataGridWidget.getMxObjectAtRow(gridRow);return { rowNode, tdNode, rowObj };
}// framework code
function onTinyReady() {//widget first showonLoad();
}
async function main() {const [html, aspect, on, { Big }, dom, lang] = await injectDeps(["dojo/dom-construct","dojo/aspect","dojo/on","big.js","mxui/dom","dojo/_base/lang",]);// widget load//widget.addOnLoad(onLoad.bind(widget));// widget mendix datasource update//aspect.after(widget, "update", function () {});// widget destroy//widget.addOnDestroy(function () {});// widget resize//aspect.after(widget, "resize", function () {});aspect.after(widget, "onTinyReady", lang.hitch(widget, onTinyReady));
}
main();async function injectDeps(deps) {return new Promise((resolve) => {if (!Array.isArray(deps)) {deps = [deps];}window.dojoDynamicRequire(deps, function () {resolve(Array.from(arguments));});});
}function throttle(fn, delay = 500) {let _flag = true;let args = null;return function () {if (_flag) {args = arguments;setTimeout(() => {fn.apply(this, args);_flag = true;}, delay);_flag = false;}};
}

关于Mendix公司

Mendix,a Siemens business是全球企业级低代码的领导者,正在从根本上重塑数字化企业构建应用的方式。企业可通过Mendix低代码软件快速开发平台来扩展自身的开发能力,打破软件开发的瓶颈。借助Mendix开发平台,企业可以打造具备智能、主动性和人机互动等原生体验的智能化应用,对核心系统进行现代化升级并实现规模化应用开发,以跟上业务增长的速度。Mendix低代码软件快速开发平台可在保持最高安全、质量和治理标准的前提下,促进业务与IT团队之间的密切合作,大大缩短应用开发周期,帮助企业自信迈向数字化未来。Mendix的“Go Make It”平台已被全球4000多家领先公司采用。

http://www.lryc.cn/news/206395.html

相关文章:

  • 热搜榜:最热门的话题文本排行榜API接口
  • vue中替换全局字体
  • 【AGC】.p12证书文件如何获取MD5
  • vue2 quill 视频上传 ,基于ruoyi vue,oss
  • YOLOv8改进实战 | 更换损失函数之MPDIOU(2023最新IOU)篇
  • 图的应用1.0-----最小生成树问题
  • 【计算机网络笔记】网络应用对传输服务的需求
  • IDEA启动报错:Command line is too long的解决办法
  • Android 中的 本地广播LocalBroadcastManager
  • 题目 1120: C语言训练-“水仙花数“问题2python详解)——练气三层后期
  • sheng的学习笔记-【中】【吴恩达课后测验】Course 3 - 结构化机器学习项目 - 第二周测验
  • 基于Pytorch的驾驶员分心行为实时检测
  • 【uniapp】小程序开发7:自定义组件、自动注册组件
  • Modbus转MQTT以太网网关MQT-802主要特点和典型应用
  • Go学习第五章——函数与包
  • 【Python 常用脚本及命令系列 5 -- 如何使用 BeautifulSoup 解析CSDN网页表格中的数据】
  • OpenFeign实现分析、源码解析
  • 2023 10月最新Vmd 下载安装教程,WindowsLinux
  • Photoshop(PS)安装教程(图文教程超详细)
  • C++模版进阶
  • CloudCompare
  • 【算法小课堂】深入理解前缀和算法
  • 元对象系统功能
  • 【2024秋招】小米中间件后端开发一面2023-9-13-base武汉
  • SpringMVC Day 01:入门案例
  • docker、docker-compose安装教程,很详细
  • 源代码转换:Tangible Software Solutions 23.10 Crack
  • SAD notes
  • [SQL开发笔记]BETWEEN操作符:选取介于两个值之间的数据范围内的值
  • Babylonjs学习笔记(三)——创建天空盒