日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 生成下拉框的几种方法总结——数据来源:枚举 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上節介紹數據來源是數據庫,這節介紹對枚舉進行數據獲取,形成下拉列表。

使用場景:某些狀態值獲取等,一般是數據量小,不需要在數據庫中進行維護的數據集


?

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

總結

以上是生活随笔為你收集整理的生成下拉框的几种方法总结——数据来源:枚举的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。