下拉多选
一、任务背景
在应用的输入界面中,下拉框是最常见的了,下拉选择框可以简化用户的输入,可以避免用户的错误录入,还可以轻松实现中文与代码的映射关系,可谓用途多多。
可是随着业务的越来越复杂,各种奇怪的需求均可能冒出来,比如说,数据库中的某个字段的取值,有可能同时存在多种,比如员工基本信息表里的擅长的外语字段,有些人仅仅擅长一门外语,有些人擅长两门,有些人擅长三门、四门,甚至有些神童从小就精通七八门外语,如果一门外语搞一个字段,人家可能擅长七八门外语,你岂不是要为他设计七八个外语字段,分别命名为外语1、外语2、外语3、……外语n,这样的表结构岂不是让人发疯?
但是,如果外语的下拉选择框允许多选,那么可以把擅长的多门外语用逗号分隔存入一个字段中,这样岂不是轻松地解决了这个问题?
二、面临困难
这个功能看似很简单,做个多选框不就行了,可是仔细推敲,其实不然。
首先,网页上的多选框在form里提交后,后台request里接收到的是一个数组,你必须在后台写程序把数组拼成逗号分隔的串,然后才能存到数据库中。
其次,把数据取回来修改的时候,还需要把数据库中逗号分隔的串解析回数组,并展现在界面里。
更为复杂些的要求,就是当选项非常多的时候,不能用简单的多选框,而可能要用下拉树,把数据组织成树状结构,这样才方便选择,否则几千甚至几万个选项,眼睛都要看花了。而下拉树要实现多选,那更是要费一番功夫。比如叶子节点允许多选,枝节点不允许多选等等五花八门的需求,会把人弄晕。
幸好注重细节的润乾报表把所有这些麻烦都解决了。它为下拉列表、下拉数据集、下拉树等编辑风格都提供了多选的选项,使用起来非常方便,步骤如下:
三、实现步骤
1、设计一个填报表,定义下拉列表、下拉数据集、下拉树等编辑风格
2、在这些编辑风格的属性编辑框里,把多选选项打勾
3、发布
四、效果演示