easyui combobox获取后台数据库数据的方式介绍
2016-05-16 15:30
441 查看
今天中午利用午休时间,学习了一下easyui combobox控件的的使用,可以参见下面的连接查看与combobox 相关的资料
easyui combobox详细介绍
(一)、功能需求(如下图所示):获取行政区划显示在下拉列表中
(二)、前台实现conbomox.jsp
2.1、引入easyui相关文件到项目,在这里不多做介绍了,童鞋们可以自己度一下
2.2、简单设置combobox的外形,combobox控件的id="admiDivisionCode"
代码如下:
下面介绍四种方法加载数据库数据到combobox
2.3.1、方法1: 调用$.get()获取数据
2.3.3、方法3: 调用$.ajax({})获取数据
2.3.4、方法4: 调用$("#admiDivisionCode").combobox({})获取数据
(三)、后台实现
3.1、ComboboxController.java
3.2、service层ComboboxServiceImpl.java
1、combobox加载远程数据的用第四种方式接收数据的时候遇到的一个问题是:前台能够获取到后台传来的数据,但是当combobox就是加载不出来数据,当时郁闷死了,怎么都找不出问题,然后就想会不会是返回的数据格式问题
combobox必须加载json格式才能显示,那我把返回的list数据转化为json格式之后在传到前台,然后居然就真的加载出来了,但是
还是很很多疑问,比如为什么返回list类型数据用$.get()、$.ajax()、$.getJSON()都没有转化为json格式也可以加载成功,到底是为什么呢??????
返回的list数据格式在Debug下如下图:这不是json格式的数据
疑问还有待解决?????????
easyui combobox详细介绍
(一)、功能需求(如下图所示):获取行政区划显示在下拉列表中
(二)、前台实现conbomox.jsp
2.1、引入easyui相关文件到项目,在这里不多做介绍了,童鞋们可以自己度一下
2.2、简单设置combobox的外形,combobox控件的id="admiDivisionCode"
代码如下:
<body> <div class="easyui-layout" data-options="fit:true"> <input class="easyui-combobox" id="admiDivisionCode" name="admiDivisionCode" style="width:150px" data-options="required:true" /> </div> </body>2.3、初始化combobox:将从数据库获取的行政区划加载到combobox控件的下拉列表中
下面介绍四种方法加载数据库数据到combobox
2.3.1、方法1: 调用$.get()获取数据
$(document).ready(function(){ queryXzqh(); }) function queryXzqh(){ $.get("${base}/combobox/queryXzqh.action",function(data){//后台请求 var options=$("#admiDivisionCode").combobox('options'); options.textField="NAME"; options.valueField="CODE"; //加载数据 $("#admiDivisionCode").combobox("loadData",data.data); ,"json"); } </script>2.3.2、方法2: 调用$.getJSON()获取数据
<pre name="code" class="html"><script type="text/javascript"> $(document).ready(function(){ queryXzqh(); }) function queryXzqh(){
//后台请求url var url = "${base}/combobox/queryXzqh.action";
$.getJSON(url, function(json) { $('#admiDivisionCode').combobox({ data : json.data,//获取要显示的json数据 valueField: 'CODE', textField: 'NAME', }); }); } </script>
2.3.3、方法3: 调用$.ajax({})获取数据
<pre name="code" class="html"><script type="text/javascript"> $(document).ready(function(){ queryXzqh(); }) function queryXzqh(){ $.ajax({ type: "POST", url: "${base}/combobox/queryXzqh.action", data: '', //contentType: "application/json; charset=utf-8",//去掉这个就可以实现了,为什么呢??? dataType: "json", success: function(response){//调用成功 var options=$("#admiDivisionCode").combobox('options'); options.textField="NAME";//必须要和数据库查询的字段一样(大小写敏感) options.valueField="CODE"; //加载数据 $("#admiDivisionCode").combobox("loadData",response.data); }, });
2.3.4、方法4: 调用$("#admiDivisionCode").combobox({})获取数据
<pre name="code" class="html"><script type="text/javascript"> $(document).ready(function(){ queryXzqh(); }) function queryXzqh(){ $("#admiDivisionCode").combobox({ url:"${base}/combobox/queryXzqh.action",//获取数据 // 向服务器请求的模式 method : "post", valueField: 'CODE', textField: 'NAME', }) } </script>
(三)、后台实现
3.1、ComboboxController.java
@Controller @RequestMapping(value="combobox") public class ComboboxController { @Autowired private ComboboxServiceImpl comboboxServiceImpl; // @描述:获取行政区划(适用于前台三种方法的调用) @RequestMapping(value = "queryXzqh") @ResponseBody public ResultVO<List<Map<String,Object>>> queryXzqh(){ ResultVO<List<Map<String,Object>>> resultVO = new ResultVO<List<Map<String,Object>>>(); try{ List<Map<String,Object>> list =comboboxServiceImpl.queryXzqh(); resultVO.setData(list); resultVO.setResult(ResultConstant.RESULT_SUCCESS); resultVO.setMessage(ResultConstant.MESSAGE_SUCCESS); }catch(Exception e){ e.printStackTrace(); resultVO.setResult(ResultConstant.RESULT_FAIL); resultVO.setMessage(ResultConstant.MESSAGE_FAIL); } return resultVO; } //描述:获取行政区划(适用于方法四的前台调用) /* @RequestMapping(value="/queryXzqh.action") @ResponseBody public JSONArray queryXzqh(){ net.sf.json.JSONArray jsonArray=new JSONArray() ; List<Map<String, Object>> list= new ArrayList<Map<String,Object>>(); try{
//获取数据库的数据 list=comboboxServiceImpl.queryXzqh();
//将获取的list转化为json格式 jsonArray = net.sf.json.JSONArray.fromObject(list); }catch(Exception e){ e.printStackTrace(); } return jsonArray; }*/ }
3.2、service层ComboboxServiceImpl.java
@Service public class ComboboxServiceImpl { @Autowired private ComboboxDaoImpl comboboxDaoImpl; public List<Map<String, Object>> queryXzqh(){
//调用底层dao数据 return comboboxDaoImpl.queryXzqh(); } }3.4、dao层ComboboxdaoImpl.java
@Repository public class ComboboxDaoImpl extends BaseHibernateDao { public List<Map<String, Object>> queryXzqh(){ String sql = "select d.code,d.name from cendic.d_dictionary_item d left join cendic.d_dictionary_item d1 on d.parent_id=d1.id " + "where (d1.code='510100' and d1.id=d.parent_id) or d.code='510100' order by d.code"; //创建查询对象 Query query=this.createSQLQuery(sql, null, null, null); //获取List List<Map<String, Object>> list=query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list(); if(list.size()>0){ return list; }else{ return null; } } }
(四)、总结
1、combobox加载远程数据的用第四种方式接收数据的时候遇到的一个问题是:前台能够获取到后台传来的数据,但是当combobox就是加载不出来数据,当时郁闷死了,怎么都找不出问题,然后就想会不会是返回的数据格式问题
combobox必须加载json格式才能显示,那我把返回的list数据转化为json格式之后在传到前台,然后居然就真的加载出来了,但是
还是很很多疑问,比如为什么返回list类型数据用$.get()、$.ajax()、$.getJSON()都没有转化为json格式也可以加载成功,到底是为什么呢??????
返回的list数据格式在Debug下如下图:这不是json格式的数据
疑问还有待解决?????????
相关文章推荐
- LoadRunner 中文乱码问题(request 和Response)
- 网易视频云:新一代列式存储格式Parquet
- ios5中UIViewController addChildViewController等新方法
- HBuilder常用快捷键
- 多个UIViewController使用addSubView,第二个 UIViewController 不响应旋转[转]
- Autolayout之 关于+requiresConstraintBasedLayout方法作用
- easy ui datagrid 获取选中行的数据
- IOS UITableView编辑模式中,只有移动功能
- iOS开发-UITextView中return 点击事件的监听方法
- iOS开发-UI中懒加载的使用方法
- String、StringBuilder和StringBuffer的区别和应用场景
- IOS UITableView 改变编辑模式下的移动图标
- 使用javafx scenebuilde 添加controller 提示错误invalid
- [Android] 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析
- STORM StateQuery方法的使用与底层原理
- 解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
- 自定义标签TLD文件中,rtexprvalue属性是什么意思
- iOS触摸手势——UITouch
- UI自动化
- 《UNIX环境高级编程》第二版:Apue.h文件引入