jsp页面的combobox组件:
<label>所属单位:</label> <input class="easyui-combobox" name="entityId" id="entityId" data-options=" <span style="white-space:pre"> </span>url:'${ctx}/action/${act}_roleList', <span style="white-space:pre"> </span>method:'get', valueField:'id', textField:'name', panelHeight:'auto', ">
编辑的JS
function editJS(){ var row = $('#dataList').datagrid('getSelected');//获取列表中选中的行对象 if (row){ $('#dlg').dialog('open').dialog('setTitle','编辑实验室');//弹出编辑对话框,下面赋值,对话框包括一个combobox,和若干input $('#fm').form('load',row); url = '${ctx}/action/${act}_update?editId='+row.id;//更改对话框的提交URL(之前做过添加功能) //获取combobox的列表 var data = $('#entityId').combobox('getData'); for(var i=0;i<data.length;i++){ if(row.roleId == data[i].id){//匹配该row对象的主键ID与列表中哪个的ID相同 //设置默认值 $('#entityId').combobox('setValue',data[i].name); break; } } } }JAVA后台处理
public String update(){ result = new Result(); Lab lab = labService.findById(editId); lab.setName(name); lab.setDescription(description); //对entityId这个参数进行判断,如果是数字,说明用户点击了combobox进行选择,如果是字符串,我们刚才的JS会在页面生成一个name为entityId的input,这时如果用户没有改变该项,它的值会是我们设置的默认值,即字符串;相当于默认设置的时候,显示的是input,选择的时候是select if(CommonUtility.isNumeric(entityId)){ //该属性是数字,说明经过select进行选择了 SysRole role = roleService.findById(Integer.parseInt(entityId)); lab.setRole(role); }else{ //该属性是字符串,说明没有经过选择,该属性没有改变 } labService.update(lab); result.setSuccess("修改成功!"); return sendJson(result); }