easyui datagrid关于数据绑定的显示问题?

问题描述

easyui datagrid关于数据的显示问题有一个easyui datagrid需要显示的是系统用户的角色名称 但是角色的信息是在一个关联关系表中维护的 如何取到这个角色名称并显示在easyui datagrid的数据表格中

解决方案

$(function(){var lastIndex;$('#user').datagrid({url:'user/selectAll.action',columns : [ [ {title : 'User ID',field : 'id',width : 100,hidden:true}, {title : '用户名',field : 'userName',width : 150,editor:'text'},{title : '邮箱',field : 'email',width : 150,editor:'text'},{title : '地址',field : 'address',width : 150,editor:'text'}, {title : '密码',field : 'password',width : 150,editor:'text'}, {title : '创建时间',field : 'createTime',width : 150},{title : '所属角色',field : 'rid',width : 150,formatter : function(value, rowData, rowIndex) {if (rowData.rname) {return rowData.rname;}},editor : {type : 'combobox',options : {url : 'role/combox.action',valueField : 'rid',textField : 'rname'}}} ] ],toolbar:[{text:'append',iconCls:'icon-add',width:'auto',height:'auto',handler:function(){$('#user').datagrid('endEdit', lastIndex);$('#user').datagrid('appendRow',{userName:'',password:'',email:'',address:'',rid:'',createTime:''});lastIndex = $('#user').datagrid('getRows').length-1;$('#user').datagrid('selectRow', lastIndex);$('#user').datagrid('beginEdit', lastIndex);}},'-',{text:'delete',iconCls:'icon-remove',handler:function(){var row = $('#user').datagrid('getSelected');if (row){var index = $('#user').datagrid('getRowIndex', row);$('#user').datagrid('deleteRow', index);$.ajax({url:'user/userDelete.action',type:'POST',data:{"user.id":row.id},success:function(data){$('#user').datagrid().load("user/selectAll.action");}});}}},'-',{text:'accept',iconCls:'icon-save',handler:function(){$('#user').datagrid('acceptChanges');var row = $('#user').datagrid('getSelected');$.ajax({url:'user/userAdd.action',type:'POST',data:{"user.userName":row.userName,"user.password":row.password,"user.email":row.email,"user.address":row.address,"role.rid":row.rid},success:function(data){$('#user').datagrid().load("user/selectAll.action");}});}},'-',{text:'导出Excel',iconCls:'icon-add',width:'auto',height:'auto',handler:function(){//$.ajax({//url:'user/exportExcel.action',//type:'POST',//success:function(data){// alert("success");//}//});window.location.href = 'user/exportExcel.action';}}],onBeforeLoad:function(){$(this).datagrid('rejectChanges');},onClickRow:function(rowIndex){if (lastIndex != rowIndex){$('#user').datagrid('endEdit', lastIndex);$('#user').datagrid('beginEdit', rowIndex);}lastIndex = rowIndex;}});}); public String selectAll() { PageModel<User> pm = userService.findAll(); jsonMap.put("total", pm.getTotal()); List jsonList=new ArrayList(); for(User user:pm.getList()){ Map map=new HashMap(); UserRole userRole=userService.findRole(user.getId()); map.put("id", user.getId()); map.put("userName", user.getUserName()); map.put("email", user.getEmail()); map.put("address", user.getAddress()); map.put("password", user.getPassword()); map.put("createTime", user.getCreateTime()); map.put("rid", userRole.getRole().getRid()); map.put("rname", userRole.getRole().getRname()); jsonList.add(map); System.out.println("姓名:"+user.getUserName()+"角色:"+userRole.getRole().getRname()); } <action name="selectAll" class="userAction" method="selectAll"> <result type="json"><param name="root">jsonMap</param><param name="includeProperties">^total,^rows[d+].id,^rows[d+].userName,^rows[d+].address,^rows[d+].password,^rows[d+].createTime,^rows[d+].email,^rows[d+].rid,^rows[d+].rname</param><param name="noCache">true</param><param name="contentType">text/html</param></result> </action> jsonMap.put("rows", jsonList); return SUCCESS; }
解决方案二:
首先是你需要查询出所有的角色名称,至于如何从关联表里查询,这个需要你自己查询出来。一般情况下你可以把查询出来的角色名称放到一个集合里,然后还回一个datagrid需要的一个json格式就可以了。
解决方案三:
你查询出角色后,字节按照datagrid的json格式拼成json字符串返回即可

时间: 2024-10-31 16:18:00

easyui datagrid关于数据绑定的显示问题?的相关文章

jquery eas...-easyui datagrid数据绑定问题

问题描述 easyui datagrid数据绑定问题 我用ajax调用了后台方法,得到的data如图,却始终不能显示在页面上!求大神指教! 解决方案 你拿到的json数据不对呀. 解决方案二: url配置是远程地址,你获取到数据要配置data选项为你获取到的数据 $('#dg').datagrid({data:data}) 要么就直接配置datagri的url为你ajax请求的url地址就好了

列标题不显示-easyUI datagrid里面的列标题在IE浏览器下不显示

问题描述 easyUI datagrid里面的列标题在IE浏览器下不显示 easyUI datagrid里面的列标题在IE浏览器下不显示,在其他浏览器下是正常显示的 1.代码 //数据列表显示 function queryAll(){ $("#tt").datagrid({ title : '图片数据显示列表', url : 'PhotoAction_querylist.action', fitColumns:true, singleSelect:true, //隔行变色 stripe

easyui datagrid 不显示第一页数据

问题描述 easyui datagrid 不显示第一页数据 问个很白的问题..别笑话我... 打算页面打开后,就直接显示数据, 但是现在必须点一下分页栏上的刷新才显示.倒也显示页数和记录数,请教这是怎么回事啊? <script type="text/javascript"> $(function () { var request = new Object(); Request = GetRequest(); var db = Request['DB']; var shp_i

easyui datagrid显示隐藏问题

问题描述 easyui datagrid显示隐藏问题 当选择中秋活动费后会显示第二个图的这个列表,可是不知道为什么这个列表的表头不显示,添加了一个部门以后才会显示如第三个图,求大神帮我解答,谢谢. if($(this).combobox('getValue')=='591'){ $("#borrow_part_org_div").show(); //$("#borrow_part_org_list").css("display","&q

毕业设计-ssh2 easyui datagrid不显示问题,高手来

问题描述 ssh2 easyui datagrid不显示问题,高手来 我做毕业设计用的是easyui的datagrid,比如要添加一本书,全部字段输入的话可以显示出来,如果少输入一个字段,就显示不出来,请问谁知道怎么解决? 解决方案 你添加时应该是ajax回发服务器判断成再调用appendRow到datagrid?f12打开浏览器开发工具看是不是服务器端报错了 解决方案二: 没有用ajax,登录成功直接显示的,没用spring只用hibernate和struts2的时候是可以空着字段添加显示的,

easyui datagrid 单元格文本太多,显示两行

问题描述 easyui datagrid 单元格文本太多,显示两行 如图:我想把简介这个单元格的宽度变小,但是数据自动换行全部显示.怎么实现 解决方案 nowrap="false" 解决方案二: EasyUI DataGrid可编辑单元格easyui datagrid 单元格编辑保存

jquery easyui datagrid 某列的数据为0或空时,这个列不显示

问题描述 jquery easyui datagrid 某列的数据为0或空时,这个列不显示 jquery easyui datagrid 某列的数据为0或空时,怎么让这个列不显示. 解决方案 问题是你所有行的此列都是0没有..要是有些列不是0那不是也被隐藏了, 如果是只要有0或者为空就隐藏,自己遍历下返回的数据,然后调用hideColumn执行隐藏此列$('#dg').datagrid('hideColumn','列名称') 解决方案二: jquery easyui datagrid 列宽按百分

分页-easyui datagrid 不显示第一页数据

问题描述 easyui datagrid 不显示第一页数据 打算页面打开后,就直接显示数据, 但是现在必须点一下分页栏上的刷新才显示.倒也显示页数和记录数,请教这是怎么回事啊? <script type="text/javascript"> $(function () { var request = new Object(); Request = GetRequest(); var db = Request['DB']; var shp_id = Request['shp_

easyui datagrid 中combobox显示问题

问题描述 easyui datagrid 中combobox显示问题 我的列表中有个下拉框当选择一项后页面上所显示的是代码而不是文字,我的下拉框代码如下:function addEditorPosition(){ $("#borrow_detailinfo").datagrid('addEditor',{ field:'borrow_type',title:'借款类型',width:150,align:'center', formatter: unitformatter, editor