每一天都是新的,知识的不断更新,要求我们有不断学习的能力。不止于眼前,专属于心。
这几天我所写的select下拉框数据一般表现为三种方式:常规下拉框(数据拿过来直接用)、编辑页面下拉框(进行数据的判断,相等被选中)、两表从属关系的下拉框(数据要进行从属判定,子类自动归属于父类下面)
①常规下拉框。
<select data-placeholder="请选择服务" class="chosen-select form-control" name="id" id ="id" autocomplete="off">
<option value="">请选择</option>
<c:forEach items="${dbList }" var="a">
<option value="${a.id }" label="${a.name }"></option>
</c:forEach></select>
这种的就是直接从后台ModelAndView返回页面的同时将数据传递过来。常用于新增页面。无数据筛选,全部拿过来用。
②编辑页面下拉框。
select data-placeholder="请选择服务" class="chosen-select form-control" name="serverRegion" id ="serverRegion" autocomplete="off">
<option value="">请选择</option>
<c:forEach items="${dbList }" var="a">
<option value="${a.id }" label="${a.name }"
<c:if test="${a.id eq server.serverRegion }">
selected
</c:if>
></option>
</c:forEach>
</select>
这种的就是要在后前台来所编辑的数据的id,后台然后在serverInfo表里面查出来这条数据,再把这条数据的对象server传递到页面,通过server的serverRegion和region表的id进行比对,如果相等的话,就显示被选中。
③两表从属关系的下拉框。
<select οnchange="getContent()" data-placeholder="请选择分类" class="chosen-select form-control" name="serverInfoId" id ="serverInfoId" autocomplete="off">
<option value="">请选择分类</option>
<c:forEach items="${region}" var="r">
<optgroup label="${r.name }">
<c:forEach items="${server}" var="s" >
<c:if test="${r.id==s.serverRegion }">
<option label="${s.storageIp}">${s.id}</option>
/c:if>
</c:forEach>
</optgroup>
</c:forEach>
</select>
这种则类似于第二种只是这种是将子类的父类显示出来,但父类不能选中,只是明显的知道子类从属于那个父类。比如region是区域,serverRegion是服务器的区域,显示出来则是区域的名称,下面是区域里的服务器名称。
记录是人类最伟大的能力。真切的预言家必将从大量的数据中分析比对出来的。