easyui里弹窗的两种表现形式
来源:互联网 发布:如何解析json数组 编辑:程序博客网 时间:2024/04/30 04:58
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>
..