WTM框架即WalkingTec.Mvvm框架,最早开发与2013年,基于Asp.net MVC3 和 最早的Entity Framework, 当初主要是为了解决公司内部开发效率低,代码风格不统一的问题。经历了四年间数十个项目的考验,框架逐步的完善,推出了四个主要版本。是目前.net core上我目前遇到的最好的低代码开发平台,我目前使用LayUI前端和.net core 6.0后台。

目前遇到一个普遍的问题,遍历WTM官网及其他搜索结果并没有满意的答案,于是自己尝试着解决了下,供其他人参考。该问题描述如下:在一个WTM实体类的标准维护界面(由代码生成器构建),如何弹窗列表显示其他实体类的列表,并可勾选其他实体类的列表数据,将所勾选列表数据的ID集合传到后端用于处理。举例来说,有一个商务合同列表,列表中的每条商务合同记录对应着若干产品包,点击产品包弹框显示产品包列表,已勾选表明当前商务合同已选择该产品包,未勾选表明当前商务合同未选择该产品包,用户可通过勾选或取消勾选维护当前商务合同包含的产品包。

那么问题来了,由于WTM框架封装的太好了,导致并没有特定的类处理该问题。尤其是勾选的记录的ID集合无法通过框架既有类方法获取,因此只能自己写JavaScript脚本将勾选ID获取并通过cookie传给后台。由于WTM的列表是通过BasePagedListVM的派生类统一维护的,因此我们首先要在商务合同对应的BasePagedListVM的派生类中定义产品包按钮,便于调出产品包列表弹窗。

文章介绍了如何在WTM框架下,针对由代码生成的标准维护界面,实现弹窗显示其他实体类列表并允许用户勾选,将勾选的ID集合通过自定义JavaScript脚本和Cookie传递给后台进行处理。具体步骤包括在商务合同列表添加产品包按钮,定义Hook方法处理弹窗,以及在Hook.cshtml中使用BaseCRUDVM派生类和LayUI表格来获取和发送已勾选ID。

696

被折叠的 条评论
为什么被折叠?



