`
crabdave
  • 浏览: 1295216 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自己开发的一个生成多级select的自定义标签

    博客分类:
  • Java
阅读更多

自己开发的一个生成多级select的自定义标签


功能描述:
1、通过设置level属性来限制select的级数,默认是按编码来进行显示级数,如果设置level属性,则设置优先。
2、通过设置defaultValue属性来设置select的第一个选项"请选择"的value值。
3、通过设置lastSelectValue属性来设置将要默认选中的选项,你只需要指定最后级select选项默认应该选中的值,它就可以计算出前几级应该显示默认显示哪个选项。
4、你可以将这个自定义标签用于列表中显示,使用时只需设置pageSize来指定每页显示的行数,就可以了。
5、通过设置disabled属性来设置这个多级select是否disabled,当disabled属性等于'disabled'时这个多级选项不可用。
6、通过设置styleClass属性来设置css的class。
7、通过设置style属性来设置style。

 

组成部分:
MultSelectTag.tld //标签描述文件
MultSelectJS.js //控制各级select
MultSelectBean.java //select选项对象
MultSelectTag.java //自定义标签

 

实现描述:
在数据库表中存储各级select选项信息(提供的demo中将这些数据直接写在了jsp上已供参考运行),本系统没有使用父子关系字段进行标识,而是给每一个select选项做了一个编码,前台页面的javascript通过这个编码就能够识别它们之间的主次级关系,再向用户展示。这样一来在用户需求变更时,我们只需要在数据表中对这些选项信息进行修改,如果修改选项级数也只用修改一下选项的编码就可以了。

 

编码说明:
例如:001_001_000_000
第一位001表示:模块编码;
第二位001表示:一级菜单编码;
第三位000表示:二级菜单编码;
第四位000表示:三级菜单的编码;
其中000是用来补缺的,比如:001_001_000_000它有一级菜单编号但没有二级菜单和三级菜单编号,那么他就是一级菜单在这个编码中编码主要有4个部分组成,它表示这个编码用于一个三级select,如果是3个部分组成就表示这个编码用于一个二级select;当然你可以写成5个、6个...


表数据示例:
id    名称       编码             描述

1 '一级菜单1' '001_001_000' 
2 '二级菜单1' '001_001_001' 
3 '二级菜单2' '001_001_002' 
4 '一级菜单1' '001_002_000' 
5 '二级菜单1' '001_002_001' 
6 '二级菜单2' '001_002_002' 
7 '二级菜单3' '001_002_003' 

 

备注:

1、本组件在ecside框架的列表中进行过调试,在翻页的时候不能正确初始化select,原因是在翻页时新成生的html代码是直接赋值给原来老的table部分,不能执行初始化函数,所以需要调一下select的初始化函数。具体做法如下:

在ecside.js中找到Me.fillForm=function(originalRequest)函数,在Me.init();之后调用一下select的初始化函数initFirstOption();就ok了。

2、在数据表中可以再加一列,用于标记该行记录是否可用。

 

附件中是开发的源代码!在此抛块“砖”希望能引来“玉”,请大家多提宝贵意见!

 


      

分享到:
评论

相关推荐

    JSP自定义标签(一)_树形下拉选择菜单

    这种标签主要用于提供一个多级的、层次化的选项列表,常用于网站的导航、产品分类选择等场景。 #### 二、自定义标签的Java代码详解 自定义标签的核心是其Java类实现,这里是`SelectorTag`类,继承自`TagSupport`。...

    基于vue和element-ui实现的表单设计器 通过拖拽方式快速生成一个表单页面

    通过拖拽方式快速生成一个表单页面,表单可以导出json格式,也可以将其他人绘制的表单通过json导入方式进行还原。针对选择性控件(radio,select,checkbox)提供选择后触发调用,支持表达式。对选择性控件支持数据...

    [JavaScript]Javascript 设置与读取Co 三级select列表

    在处理多级联动时,每个级别都对应一个`<select>`元素,且下一级别的`<select>`的选项会根据上一级的选择动态生成。 要实现这个功能,JavaScript提供了DOM操作接口,包括`document.getElementById()`、`document....

    div模拟select

    `<select>`是HTML中用于创建下拉菜单的标签,用户可以选择其中一个或多个预设选项。它的优点在于简洁、易于理解和实现,但缺点是样式难以定制,特别是在跨浏览器兼容性方面。 模拟`select`的过程通常包括以下步骤:...

    jquery select二级联动菜单

    在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了JavaScript代码的编写,使得DOM操作、事件处理、动画效果等任务变得更加简单。本话题主要关注的是使用jQuery实现的二级联动下拉菜单,这是一种...

    Laravel-admin表单Form多级下拉复选框组件multiCheckbox(优化版).rar

    4. **渲染与交互**:组件会根据数据源生成一个多级下拉的 HTML 结构,并使用 JavaScript 进行交互处理,如展开、折叠和选中状态的维护。优化版可能改进了原有的渲染速度,提供了更好的触摸设备支持,或者增加了对大...

    Oracle中用GROUPING SETS分组自定义汇总

    为了获取多级或自定义的汇总,我们可以使用`GROUPING SETS`功能,它提供了更灵活的分组方式,同时避免了不必要的计算,提高了SQL查询的效率。 `GROUP BY GROUPING SETS`允许我们自定义想要的汇总级别,从而得到特定...

    select级联下拉列表

    例如,`jquery-mult-select`可能就是一个这样的插件,它可以提供多选、分组、搜索等功能,使得下拉菜单更加灵活和易用。 总结来说,"select级联下拉列表"是网页表单中一种常用的功能,通过JavaScript和HTML5的`...

    json实现多级联动

    多级联动通常涉及到多个下拉框或列表,它们之间存在着依赖关系,当一个层级的选择改变时,其他相关层级的内容会随之更新。这种效果可以通过监听事件、动态加载数据和更新UI来实现。 1. **数据结构设计** 在JSON中...

    select级联二级菜单

    通常,一个级联菜单会包含多个`<select>`元素,其中一级菜单的`<select>`会触发二级菜单的显示或隐藏。每个`<option>`元素代表一个菜单项,通过`value`属性传递特定值,而`<optgroup>`元素可以用于组织相关的选项。 ...

    json2select jquery 三级地区选择(省市县).zip

    JSON2Select是一个jQuery插件,专门用于创建三级联动的地区选择器,如省市县选择。这个插件在网页设计和开发中非常实用,特别是在需要用户输入详细地址信息时。使用JSON2Select,开发者可以轻松地从JSON数据源构建出...

    layui xm-select插件注意事项.rar

    layui是一个轻量级的前端UI框架,它提供了一系列美观且易于使用的组件,极大地提升了开发效率。其中,xm-select是layui框架中的一个扩展插件,专为实现多选下拉框功能而设计。这个插件在实际应用中非常常见,但使用...

    jQuery cxSelect 多级联动下拉菜单

    通过以上介绍,我们可以看出 `jQuery cxSelect` 是一个强大且灵活的工具,能够帮助开发者快速构建具有联动效果的下拉菜单,提高用户体验,同时减轻开发负担。在实际项目中,根据具体需求调整配置和扩展功能,可以让...

    ExpandTab多级联动(下拉式菜单)

    通过以上步骤,我们可以实现一个功能完善的“ExpandTab多级联动(下拉式菜单)”。在实际开发中,还可以结合现代前端框架如React、Vue或Angular,利用它们的组件化特性进一步提升开发效率和代码维护性。同时,考虑到...

    jQuery下拉框多级菜单筛选插件.zip

    在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理和动画效果。本资源“jQuery下拉框多级菜单筛选插件”是为了解决在网页表单中实现复杂下拉菜单筛选功能的一个实用工具。这个...

    下拉列表 可输入 可选择

    2. **可选择**:用户可以从显示的选项中选择一个,这与原生`<select>`类似,但可能有更丰富的动画和过渡效果。 3. **可扩展**:新输入的值可以被保存并添加到下拉列表中,以便后续用户可以再次选择,增强了用户体验...

    基于layui实现树形穿梭框

    总结来说,基于layui实现的树形穿梭框是一个功能强大且易于使用的组件,它简化了前端开发中涉及树形结构和双向选择的复杂性。通过理解layui的框架机制和组件API,开发者可以灵活地构建出满足需求的交互界面。

    dephi+sqlserver2000题库与试卷生成系统.rar

    综上所述,"dephi+sqlserver2000题库与试卷生成系统"是一个结合了Delphi的强大开发能力和SQLServer2000的数据处理能力的教学辅助工具。通过这样的系统,教育工作者可以更有效地进行教学评估和资源管理,从而提升教学...

    yl_linkage_帝国CMS无限联动插件_

    仅供参考 多级联动,支持Ajax动态获取数据并缓存数据,动态生成下级select菜单,设置动态生成"option"第一个条目作为提示项,自动选择唯一选项的菜单,设置回调函数在onChange事件触发时获取下拉菜单相关...

Global site tag (gtag.js) - Google Analytics