生成下拉框的几种方法总结——数据来源:枚举

上节介绍数据来源是数据库,这节介绍对枚举进行数据获取,形成下拉列表。

使用场景:某些状态值获取等,一般是数据量小,不需要在数据库中进行维护的数据集


 

1、前提要有枚举数据

package com.test.entity.neworder;import java.util.Objects;/*** 新订单状态** @author 刘涛*/
public enum NewOrderStateEunm {//已删除已删除(0, "已删除"),//已创建已创建(1, "已创建"),//已发布已发布(2, "已发布"),Integer index;String state;NewOrderStateEunm(Integer index, String state) {this.index = index;this.state = state;}public Integer getIndex() {return index;}public String getState() {return state;}/*** 通过index获取value** @param index 枚举索引* @return 枚举值*/public static String getValue(Integer index) {for (NewOrderStateEunm c : NewOrderStateEunm.values()) {if (Objects.equals(c.getIndex(), index)) {return c.getState();}}return null;}/*** 通过value获取index** @param state 枚举值* @return 枚举索引*/public static String getIndex(String state) {for (NewOrderStateEunm c : NewOrderStateEunm.values()) {if (Objects.equals(c.getState(), state)) {return c.index + "";}}return "error";}
}

2、Controller层

 /*** 获取订单状态类型*/@RequestMapping("/getNewOrderStateForSelect")@ResponseBodypublic List<Map<String, Object>> getNewOrderStateForSelect() {return EnumUtil.getNewOrderStateEnum();}

3、EnumUtil工具类文件中

package com.test.util;import com.test.entity.neworder.NewOrderStateEunm;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class EnumUtil {public static List<Map<String, Object>> getNewOrderStateEnum() {List<Map<String, Object>> lm = new ArrayList<>();Map<String, Object> m;for (int i = 0; i < NewOrderStateEunm.values().length; i++) {m = new HashMap<>();m.put("id", NewOrderStateEunm.values()[i].getIndex() + "");m.put("type", NewOrderStateEunm.values()[i].getState());lm.add(m);}return lm;}
}

4、前端页面

 <select type="text" id="stateCode" name="state" lay-filter="state" lay-searchautocomplete="off"></select>

5、由于我使用的是layui,所以js部分

<script type="text/javascript">var $ = layui.jquery;$(function () {getNewOrderStateForSelect("stateCode");});/*** 获取订单状态列表* @param selectId*/
function getNewOrderStateForSelect(selectId) {var $selectId = $("#" + selectId);var url = "commonCtrl/getNewOrderStateForSelect";$.get(url, function (data) {console.log(data);var info = "<option value=''>请选择</option>";for (var i = 0; i < data.length; i++) {info += "<option value=" + data[i].id + ">" + data[i].type + "</option>";}$selectId.append(info);layui.use('form', function () {var form = layui.form;form.render('select');})})
}</script>

 完毕!

昨天还遇到一个比较复杂的获取方式:后台将枚举写的复杂了。如下:

 for(int i=0;i< SettleTypeNewEnum.values().length;i++){Map code=new HashMap();code.put(SettleTypeNewEnum.values()[i].getType(),SettleTypeNewEnum.values()[i].getIndex());payMethodCodeList.add(code);}

所以,前端获取到的是{[object object],[object object]},用json解析一下就是{[张三:12],[李四:23]}这种格式,

但是我想获取其中的值,直接调用对象中的属性,暂未发现有什么属性能直接获取到数据。

so,只能利用以下这种方式解决了:

function getNewPayMethodTypeForSelect(selectId) {var $selectId = $("#" + selectId);var url = "newSettleCtrl/getPayMethodCode";$.get(url, function (data) {var info = "<option value=''>请选择</option>";$.each(data.data,function(i,v){info += "<option value=" + v[Object.keys(v)[0]] + ">" + Object.keys(v)[0] + "</option>";});$selectId.append(info);layui.use('form', function () {var form = layui.form;form.render('select');})})
}

 

转载于:https://www.cnblogs.com/yangyuke1994/p/9999328.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习(102):arraylist的查询和删除

arraylist的查询和删除 //arraylist的遍历和增加 import java.util.ArrayList;public class test38 {public static void main(String[] args){ArrayList aa1new ArrayList();//当前对象个数System.out.println(aa1.size());test35 xs1new test35("歌谣",3,4);test35…

Android11怎么截屏,对标IOS?Android11或无缘屏幕长截图

我收集了一些学习用的资料&#xff0c;其中包含了很多学习&#xff0c;面试&#xff0c;中高进阶fluuter资料&#xff0c;还有很多视频详解&#xff0c;如果有同学想进一步了解&#xff0c;详情请看文末。也欢迎各路大神门前来装X。一直以来&#xff0c;不少用户都很喜欢用长截…

医疗:HIS(1)

1医疗信息系统概念2医疗信息系统组成 3医疗信息系统功能 4医疗信息系统特点 5意义 6分类 7发展趋势 1医疗信息系统概念 医院信息系统是指利用计算机软硬件技术和网络通信技术等现代化手段&#xff0c;对医院及其所属各部门的人流、物流、财流进行综合管理&#xff0c;对在…

新功能:php-laravel记录来访人员的IP以及所在区域

来源 http://www.codepalace.xyz/article_show/31转载于:https://www.cnblogs.com/Ychao/p/9999721.html

第一批升级鸿蒙系统,鸿蒙系统公开了第一批升级名单,果粉认为不地道

鸿蒙系统鸿蒙系统对于很多人来说并不陌生&#xff0c;它由华为独自研发&#xff0c;同样也代表着中国技术能力上的提升。还记得鸿蒙系统是在去年华为开发者大会上与广大用户见面&#xff0c;不仅招来了很多人的目光&#xff0c;并且一下子将知名度提高了许多。人们都想知道第一…

医疗:LIS(2)

1简介2系统定义3系统功能4解决方案5系统优势 1简介 LIS系统(Laboratory Information System) 即实验室&#xff08;检验科&#xff09;信息系统&#xff0c;它是医院信息管理的重要组成部分之一&#xff0c;自从人类社会进入信息时代&#xff0c;信息技术的迅速发展加快了各行…

kubernetes1.9管中窥豹-CRD概念、使用场景及实例

欢迎访问网易云社区&#xff0c;了解更多网易技术产品运营经验。前言默认读者有kubernetes基础概念的背景知识&#xff0c;因此基础概念例如有状态、pod、Replica Sets、Deployments、statefulsets等不在此文详细阐述。 可以看我之前的一些关于kubernetes的文章&#xff1a;kub…

linux vma,内存管理 – Linux内核API find_vma

find_vma函数功能描述&#xff1a;find_vma( )函数根据一个属于某个进程的虚拟地址&#xff0c;找到其所属的进程虚拟区间&#xff0c;并返回相应的vma_area_struct结构体指针。find_vma文件包含#includefind_vma函数定义在内核源码中的位置&#xff1a;linux-3.19.3/mm/mmap.c…

医疗:pacs(3)

1简介2简要介绍3主要优点4现状5趋势6标准化进程 1简介 PACS系统是Picture Archiving and Communication Systems的缩写&#xff0c;意为影像归档和通信系统。它是应用在医院影像科室的系统&#xff0c;主要的任务就是把日常产生的各种医学影像&#xff08;包括核磁&#xff0c…

SSM项目中整合WebService

先了解一下WebService的一些相关术语吧&#xff1a; WebService&#xff1a;WebService是一种跨编程语言和跨操作系统平台的远程调用技术。 WSDL(web service definition language)&#xff1a;WSDL是webservice定义语言, 对应.wsdl文档, 一个webservice会对应一个唯一的wsdl文…

搭载鸿蒙的油烟机,华为、美的合作:搭载鸿蒙系统的家电来了 三大亮点

日前&#xff0c;美的与华为在智能家居行业又有大动作&#xff1a;双方将在2021年实现合作规模化&#xff0c;从运营和营销角度开展更多联合合作。美的鸿蒙新家电亮点包括&#xff1a;第一是极速配网&#xff0c;只要用手机碰一碰&#xff0c;基于WiFi Aware配网协议即可实现设…

医疗:CIS(4)

1临床信息系统 HIS是以事务管理为主要内容&#xff0c;它的功能明确&#xff0c;数据易于结构化&#xff0c;其采集、处理方法简单而固定。例如患者的医疗费用管理&#xff0c;药品的库存、发放管理&#xff0c;人事档案管理。 CIS以医疗过程为主要内容&#xff0c;而医疗过程…

BZOJ 5394 [Ynoi2016]炸脖龙 (线段树+拓展欧拉定理)

题目大意&#xff1a;给你一个序列&#xff0c;需要支持区间修改&#xff0c;以及查询一段区间$a_{i}^{a_{i1}^{a_{i2}...}}mod\;p$的值&#xff0c;每次询问的$p$的值不同 对于区间修改&#xff0c;由线段树完成&#xff0c;没什么好说的 对于查询&#xff0c;利用"上帝与…

excel android 公式,两个超实用的Excel万能公式,瞬间提升你10倍工作效率!

相信大家在平时的工作中&#xff0c;都会经常有用到公式的需要&#xff0c;但是下面这些公式你用过吗&#xff0c;今天小编就带大家一起看看吧&#xff01;1. SUM函数这个函数不仅在我们学习的过程中会用到&#xff0c;即便到了工作后&#xff0c;也经常需要对各种数据进行处理…

医疗:EMR(5)

电子病历&#xff08;EMR,Electronic Medical Record&#xff09;&#xff0c;也叫计算机化的病案系统或称基于计算机的病人记录&#xff08;CPR,Computer-Based Patient Record&#xff09;。它是用电子设备&#xff08;计算机、健康卡等&#xff09;保存、管理、传输和重现的…

Linux中常用命令(文件与目录)

1、pwd 查看当前目录&#xff08;Print Working Directory&#xff09;2、cd 切换工作目录&#xff08;Change Directory&#xff09;&#xff08;1&#xff09;格式&#xff1a;cd [目录位置]特殊目录&#xff1a;.当前目录..上一级目录~用户主目录-上个工作目录&#xff08;2…

计算机操作系统(1):OS的作用和目标

OS的目标和作用 操作系统&#xff08;Operating System , OS&#xff09;是计算机硬件上的第一层软件&#xff0c;是计算机必须配置的最基本、最重要的系统软件。 1.1.1 OS的目标 有效性 方便性 可扩展性 开放性 1&#xff0e;有效性(早期OS的主要目标) 有效提高CPU和…

android p 权限控制,android 权限控制

android6 的权限分为几个级别&#xff0c;普通的第三方应用一般会用到 normal dangerous 。系统应用可能会用到 signature|system signature|privileged signature,详细的信息在Manifest中定义vim frameworks/base/core/res/AndroidManifest.xml其中&#xff0c;只有定义为dang…

计算机操作系统(2):OS的发展过程

1.2 OS的发展过程 20世纪50年代中期&#xff0c;第一个简单的批处理系统 60年代中期&#xff0c;多道程序批处理系统&#xff0c;随后出现分时系统 上世纪80年代开始至21世纪初&#xff0c;微型机、多处理机、计算机网络大发展年代→微机OS、多处理机OS和网络OS的形成和大发展…

创建好centos7虚拟机之后连xshell连不上虚机

创建好虚拟机之后配置都已经配置完成了selinux&#xff0c;防火墙都关了准备用xshell 连接虚拟机报出 然后在网上着了各种资料还是不行&#xff0c;最后将网卡修改为&#xff1a; 修改之后就可以连上了。 当然修改之后会出现两个ip 必须得使用圈起来的ip连才可以&#xff0c;用…