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

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


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

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

  1. 生成下拉框的几种方法总结——数据来源:数据库

    下拉框的内容可以来自数据库.枚举.自己在程序中的定义等,我们今天来介绍一下先介绍来自数据库的数据进行下拉列表的实现. 使用场景:客户下拉列表等 1.确保数据库中有相关客户信息数据. 2.获取数据格式( ...

  2. layui表单mysql_layui表单验证支持select下拉框的一种方法

    背景: 1.layui在select选择后可以通过layui.event.call触发form.on('select(##)',function...)事件 2.layui的select被渲染后会变成 ...

  3. layui表单验证支持select下拉框的一种方法

    背景: 1.layui在select选择后可以通过layui.event.call触发form.on('select(##)',function...)事件 2.layui的select被渲染后会变成 ...

  4. PHP下拉框选择的实现方法

    实现 第一种PHP下拉框实现方法: < ?php //提交下拉框; //直接饱触发onchange事件的结果 $id=$_GET['myselect']; // myselect 为locati ...

  5. php可输入的下拉框,JavaScript_可编辑下拉框的2种实现方式,可编辑下拉框-HTML 复制代码 代 - phpStudy...

    可编辑下拉框的2种实现方式 可编辑下拉框-HTML A类 B类 C类 D类 可编辑下拉框-JS 可编辑下拉框 可编辑下拉框 作者 function combox(obj,select){ this.o ...

  6. Qt QComboBox下拉框文字重叠解决方法

    Qt QComboBox下拉框文字重叠解决方法 参考文章: (1)Qt QComboBox下拉框文字重叠解决方法 (2)https://www.cnblogs.com/nanqiang/p/10559 ...

  7. jQuery自定义漂亮的下拉框插件8种效果演示

    原始的下拉框不好看这里推荐一个jQuery自定义漂亮的下拉框插件8种效果演示  在线预览 下载地址 实例代码 <!DOCTYPE html> <html lang="en& ...

  8. Java selenium操作下拉滚动条的几种方法

    数据采集中,经常遇到动态加载的数据,我们经常使用selenium模拟浏览器操作,需要多次下拉刷新页面才能采集到所有的数据,就此总结了几种selenium操作下拉滚动条的几种方法 我这里演示的是Java ...

  9. java excel 数据有效性_Excel设置数据有效性实现单元格下拉菜单的3种方法

    Excel设置数据有效性实现单元格下拉菜单的3种方法 一.直接输入: 1.选择要设置的单元格,譬如A1单元格: 2.选择菜单栏的"数据"→"有效性"→出现&qu ...

最新文章

  1. RabbitMQ 入门系列(6)— 如何保证 RabbitMQ 消息不丢失
  2. 网络推广方案分享网站想要更快的优化到首页的技巧!
  3. java webstart 自动升级_windows – 使用java web start实现自动更新桌面应用程序时的AWTPermission异常...
  4. ProtoBuf开发者指南
  5. stm32f102 SPI口重复初始化引起的问题及解决办法
  6. 关于linux中的 秘钥认证 ,最清晰解读
  7. Oracle数据库空间突然增大,Oracle数据库突然宕机,处理方案
  8. 数组累加兼eval性能测试
  9. html前端毕业设计项目,web前端毕业设计论文..doc
  10. mysql定时备份并压缩_linux mysql定时备份并压缩
  11. 手把手教你电脑下载b站视频
  12. 理解DCT与DST【一】:离散傅里叶变换
  13. win10 matlab打开,win10系统启动matlab出现闪退的处理步骤
  14. iOS AirDrop
  15. 2021年7月世界编程语言排行
  16. 再战sortablejs
  17. 谷歌Colab(免费算力平台)——正确打开方式(常用操作指导tips)
  18. Visual Studio for Nintendo Switch? -FUZE4 Nintendo Switch是一个了不起的编码应用程序
  19. 销售管理之调拨销售管理
  20. 科普达人丨一文看懂阿里云的秘密武器“神龙架构”

热门文章

  1. dockerfile使用(一)
  2. llvm编译linux,在Linux上编译LLVM/Clang 8.0.0等全部源代码
  3. 根据父类id查询所有的父级_父类子类抽象类,super final 重写方法,搞懂继承中复杂的知识点...
  4. 和包支付的钱哪里来_2019年支付宝年度账单出炉,来看看你究竟花了多少钱
  5. 震惊!垃圾分类居然能用Python搞定!
  6. Dockerfile语法
  7. Hexo自定义页面的方法
  8. java学习之(内部类)
  9. Spring中配置数据源的4种形式 ---转
  10. 巨潮网怎么下载年报_上市公司年报(或财务报表)在哪里下载?