1、主JSP页面中描绘弹窗
<div id="centerDiv" data-options="region:'center',border:false"> <table id="networkQueryGrid" data-options="queryForm:'#queryForm',title:'查询结果',iconCls:'pag-list'"></table> </div> <div id="restartDialog" class="easyui-dialog" title="重新启动网络" style="width: 400px; height: 180px;" data-options="iconCls:'pag-list',modal:true,collapsible:false,minimizable:false,maximizable:false,resizable:false,closed:true"> <div style="margin-left: 5px;margin-right: 5px;margin-top: 5px;"> <div class="data-tips-info"> <div class="data-tips-tip icon-tip"></div> 此网络提供的所有服务都将中断。请确认您确实要重新启动此网络。 </div> <table style="margin-top: 20px;margin-left:20px;margin-right:20px;vertical-align:middle;" width="80%" border="0" cellpadding="0" cellspacing="1"> <tr> <td style="width:20%;text-align:right;"> 清理: </td> <td style="text-align:left;"> <input type="hidden" id="networkId" name="networkId"/> <input type="checkbox" id="cleanUp" name="cleanUp"/> </td> </tr> </table> <div style="text-align:right;margin-right:30px;"> <a href="#" class="easyui-linkbutton" data-options="iconCls:'ope-finish'" onclick="restartNetwork()">确定</a> <a href="#" class="easyui-linkbutton" data-options="iconCls:'ope-cancel'" onclick="cancel()">取消</a> </div> </div> </div>
JS:
function showRestartDialog(id){ $("#networkId").val(id); $("#restartDialog").dialog('open'); } function restartNetwork(){ cancel(); var checked = $("#cleanUp").prop("checked"); invokeAjax('/network/restartNetwork','networkId=' + $("#networkId").val() + '&cleanUp='+checked,'重新启动'); } function cancel(){ $('#restartDialog').window('close'); }
2、直接在JS里绘制弹窗(弹窗为单独页面文件)
Toobar可放置到主JSP页面:
<div id="toolbar" style="text-align:right;"> <a href="#" class="easyui-linkbutton" data-options="iconCls:'ope-finish'" onclick="associateIP()">获取新IP</a> </div>
JS:
function showPublicIpDialog(row){ var networkId ; var zoneId = row.zoneId; var virtualMachineId = row.id; if(row.nics && row.nics.length > 0){ networkId = row.nics[0].networkId; } var ipHref = _root +'/vm/viewAllocateIP?networkId='+networkId+'&zoneId='+zoneId; $dialog = $('<div/>').dialog({ title: '分配公网IP', width: 400, height: 250, iconCls : 'pag-search', closed: true, cache: false, href: ipHref, modal: true, toolbar:'#toolbar', onLoad:function(){ //设置其他数据 $("#zoneId").val(row.zoneId); if(row.nics && row.nics.length > 0){ $("#networkId").val(row.nics[0].networkId); } }, buttons : [ { text : '确定', iconCls : 'ope-save', handler : function() { var $radio = $("input[type='radio']:checked"); var iPAddressId = $radio.val(); if($radio.length == 0 || iPAddressId == ""){ $.messager.alert('提示', '请选择IP','info'); return; } $.ajax({ url: _root + "/vm/enableStaticNat", type: "post", data: {virtualMachineId:virtualMachineId,iPAddressId:iPAddressId}, dataType: "json", success: function (response, textStatus, XMLHttpRequest) { if(response!=null && response.success){ $.messager.alert('提示','分配公网IP成功','info',function(){ $dialog.dialog('close'); $obj.SuperDataGrid('reload'); }); }else if(response!=null&&!response.success){ $.messager.alert('提示','分配公网IP失败','error'); } } }) } }, { text : '取消', iconCls : 'ope-close', handler : function() { $dialog.dialog('close'); } } ] }); $dialog.dialog('open'); } function associateIP(){ ... }
Controller:
/** * 跳转到弹窗页面 */ @RequestMapping(value = "/viewAllocateIP", method = {RequestMethod.GET,RequestMethod.POST}) public ModelAndView viewAllocateIP(@RequestParam String networkId,@RequestParam String zoneId) { ModelAndView model = new ModelAndView(); model.setViewName("vm/allocateIP"); try { Set<PublicIPAddress> ips = virtualMachineService.listPublicIpAddresses(networkId,zoneId); model.addObject("ips", ips); } catch(BusinessException e) { throw new ControllerException(HttpStatus.OK, e.getCode(), e.getMessage()); } catch(Exception e) { final String msg = messageSource.getMessage(TipsConstants.QUERY_FAILURE); throw throwControllerException(LOGGER, HttpStatus.OK, null, msg, msg, e); } return model; }
allocateIP.jsp:
<body> <input type="hidden" name="zoneId" id="zoneId" /> <input type="hidden" name="networkId" id="networkId" /> <div class="easyui-layout" data-options="fit:true" style="padding: 0px;"> <div data-options="region:'center',border:false"> <c:if test="${!empty ips}"> <table class="ipTable" width="95%" border="1" borderColor="#DEDEDE" cellpadding="0" cellspacing="0"> <c:forEach items="${ips }" var="item"> <tr> <td style="width: 35px; text-align: center;"><input type="radio" value="${item.id }" name="ids" /></td> <td style="padding-left: 35px; font-size: 13px;">${item.IPAddress }</td> </tr> </c:forEach> </table> </c:if> </div> </div> </body>
..