1、主JSP页面中描绘弹窗



 

  1. <div id="centerDiv" data-options="region:'center',border:false">
  2. <table id="networkQueryGrid"
  3. data-options="queryForm:'#queryForm',title:'查询结果',iconCls:'pag-list'"></table>
  4. </div>
  5. <div id="restartDialog" class="easyui-dialog" title="重新启动网络" style="width: 400px; height: 180px;"
  6. data-options="iconCls:'pag-list',modal:true,collapsible:false,minimizable:false,maximizable:false,resizable:false,closed:true">
  7. <div style="margin-left: 5px;margin-right: 5px;margin-top: 5px;">
  8. <div class="data-tips-info">
  9. <div class="data-tips-tip icon-tip"></div>
  10. 此网络提供的所有服务都将中断。请确认您确实要重新启动此网络。
  11. </div>
  12. <table style="margin-top: 20px;margin-left:20px;margin-right:20px;vertical-align:middle;" width="80%" border="0" cellpadding="0" cellspacing="1">
  13. <tr>
  14. <td style="width:20%;text-align:right;">
  15. 清理:
  16. </td>
  17. <td  style="text-align:left;">
  18. <input type="hidden" id="networkId" name="networkId"/>
  19. <input type="checkbox" id="cleanUp" name="cleanUp"/>
  20. </td>
  21. </tr>
  22. </table>
  23. <div style="text-align:right;margin-right:30px;">
  24. <a href="#" class="easyui-linkbutton" data-options="iconCls:'ope-finish'" onclick="restartNetwork()">确定</a>
  25. <a href="#" class="easyui-linkbutton" data-options="iconCls:'ope-cancel'" onclick="cancel()">取消</a>
  26. </div>
  27. </div>
  28. </div>

JS:

  1. function showRestartDialog(id){
  2. $("#networkId").val(id);
  3. $("#restartDialog").dialog('open');
  4. }
  5. function restartNetwork(){
  6. cancel();
  7. var checked = $("#cleanUp").prop("checked");
  8. invokeAjax('/network/restartNetwork','networkId=' + $("#networkId").val() + '&cleanUp='+checked,'重新启动');
  9. }
  10. function cancel(){
  11. $('#restartDialog').window('close');
  12. }

2、直接在JS里绘制弹窗(弹窗为单独页面文件)



 

Toobar可放置到主JSP页面:

  1. <div id="toolbar" style="text-align:right;">
  2. <a href="#" class="easyui-linkbutton" data-options="iconCls:'ope-finish'" onclick="associateIP()">获取新IP</a>
  3. </div>

JS:

  1. function showPublicIpDialog(row){
  2. var networkId ;
  3. var zoneId = row.zoneId;
  4. var virtualMachineId = row.id;
  5. if(row.nics && row.nics.length > 0){
  6. networkId = row.nics[0].networkId;
  7. }
  8. var ipHref = _root +'/vm/viewAllocateIP?networkId='+networkId+'&zoneId='+zoneId;
  9. $dialog = $('<div/>').dialog({
  10. title: '分配公网IP',
  11. width: 400,
  12. height: 250,
  13. iconCls : 'pag-search',
  14. closed: true,
  15. cache: false,
  16. href: ipHref,
  17. modal: true,
  18. toolbar:'#toolbar',
  19. onLoad:function(){
  20. //设置其他数据
  21. $("#zoneId").val(row.zoneId);
  22. if(row.nics && row.nics.length > 0){
  23. $("#networkId").val(row.nics[0].networkId);
  24. }
  25. },
  26. buttons : [ {
  27. text : '确定',
  28. iconCls : 'ope-save',
  29. handler : function() {
  30. var $radio = $("input[type='radio']:checked");
  31. var iPAddressId = $radio.val();
  32. if($radio.length == 0 || iPAddressId == ""){
  33. $.messager.alert('提示', '请选择IP','info');  return;
  34. }
  35. $.ajax({
  36. url: _root + "/vm/enableStaticNat",
  37. type: "post",
  38. data: {virtualMachineId:virtualMachineId,iPAddressId:iPAddressId},
  39. dataType: "json",
  40. success: function (response, textStatus, XMLHttpRequest) {
  41. if(response!=null && response.success){
  42. $.messager.alert('提示','分配公网IP成功','info',function(){
  43. $dialog.dialog('close');
  44. $obj.SuperDataGrid('reload');
  45. });
  46. }else if(response!=null&&!response.success){
  47. $.messager.alert('提示','分配公网IP失败','error');
  48. }
  49. }
  50. })
  51. }
  52. }, {
  53. text : '取消',
  54. iconCls : 'ope-close',
  55. handler : function() {
  56. $dialog.dialog('close');
  57. }
  58. } ]
  59. });
  60. $dialog.dialog('open');
  61. }
  62. function associateIP(){
  63. ...
  64. }

Controller:

  1. /**
  2. * 跳转到弹窗页面
  3. */
  4. @RequestMapping(value = "/viewAllocateIP", method = {RequestMethod.GET,RequestMethod.POST})
  5. public ModelAndView viewAllocateIP(@RequestParam String networkId,@RequestParam String zoneId) {
  6. ModelAndView model = new ModelAndView();
  7. model.setViewName("vm/allocateIP");
  8. try {
  9. Set<PublicIPAddress> ips = virtualMachineService.listPublicIpAddresses(networkId,zoneId);
  10. model.addObject("ips", ips);
  11. } catch(BusinessException e) {
  12. throw new ControllerException(HttpStatus.OK, e.getCode(), e.getMessage());
  13. } catch(Exception e) {
  14. final String msg = messageSource.getMessage(TipsConstants.QUERY_FAILURE);
  15. throw throwControllerException(LOGGER, HttpStatus.OK, null, msg, msg, e);
  16. }
  17. return model;
  18. }

allocateIP.jsp:

  1. <body>
  2. <input type="hidden" name="zoneId" id="zoneId" />
  3. <input type="hidden" name="networkId" id="networkId" />
  4. <div class="easyui-layout" data-options="fit:true" style="padding: 0px;">
  5. <div data-options="region:'center',border:false">
  6. <c:if test="${!empty ips}">
  7. <table class="ipTable" width="95%" border="1" borderColor="#DEDEDE" cellpadding="0" cellspacing="0">
  8. <c:forEach items="${ips }" var="item">
  9. <tr>
  10. <td style="width: 35px; text-align: center;"><input type="radio" value="${item.id }" name="ids" /></td>
  11. <td style="padding-left: 35px; font-size: 13px;">${item.IPAddress }</td>
  12. </tr>
  13. </c:forEach>
  14. </table>
  15. </c:if>
  16. </div>
  17. </div>
  18. </body>

easyui里弹窗的两种表现形式的更多相关文章

  1. [转载]EasyUI Pagination 分页的两种做法

    EasyUI 的 datagrid 支持服务器端分页,但是官方的资料比较少,以下总结了两种 datagrid 的服务器端分页机制,可根据情况具体使用. 一:使用 datagrid 默认机制 后台: p ...

  2. EasyUI Pagination 分页的两种做法

    EasyUI 的 datagrid 支持服务器端分页,但是官方的资料比较少,以下总结了两种 datagrid 的服务器端分页机制,可根据情况具体使用. 一:使用 datagrid 默认机制 后台: p ...

  3. Easyui 创建dialog的两种方式,以及他们带来的问题

    $('#yy').dialog('open');//打开dialog 这地方要注意,加入你关闭窗口的地方使用$('#yy').dialog('destroy');那么你这个dialog就只能使用一次, ...

  4. EasyUI 之 DataGrid的两种赋值方法

    方法一:使用ViewData赋值 首先,我们创建一个User的实体类 public class User { public string UserID; public string UserName; ...

  5. Flask 中蓝图的两种表现形式

    最近在学Flask,特有的@X.route 很适合RESTfuld API, 一般小型应用,在一个py文件中就可以完成,但是维护起来比较麻烦. 想体验Django那样的MVT模式, 看到 Flask提 ...

  6. 1. easyui tree 初始化的两种方式

    /** * 查询角色分类 */function queryRoleCategoryTree(selectId) { var url = basePath + 'rest/roleCategoryCon ...

  7. dataTable 从服务器获取数据源的两种表现形式

    var table = $('#example1').DataTable({ "processing": true,//加载效果 "autoWidth": fa ...

  8. 图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS)

    参考网址:图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS) - 51CTO.COM 深度优先遍历(Depth First Search, 简称 DFS) 与广度优先遍历(Breath ...

  9. Redis中持久化的两种方法详解

    Redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里;另一种方法教只追加文件(append-only f ...

随机推荐

  1. HDU 5950 矩阵快速幂

    Recursive sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  2. Altium Designer 画"差分线"

    Altium Designer 画"差分线" 如何在 Altium Designer 中快速进行差分对走线1:在原理图中让一对网络前缀相同,后缀分别为_N 和_P,并且加上差分队对 ...

  3. CC3000 SPI接口编程介绍

    CC3000 SPI 操作: CC3000的SPI 是基于五根线CLCK,CSn,IRQ,MISO,MOSI:通信模式如下图: CLCK:时钟频率0-26M从主机到从机,提供SPI接口时钟 CSn:低 ...

  4. linux 中printf的使用

    linux 中printf的使用printf "helloworld\n"printf 中换行必须加上\n printf '%d %s\n' 1 "abc" c ...

  5. node版本管理器nvm(服务器项目相关)

    git项目 https://github.com/creationix/nvm 1.下载并安装NVM脚本 curl https://raw.githubusercontent.com/creation ...

  6. jQuery使用示例详解

    [jquery引用字段] <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv ...

  7. python学习-day20、装饰器【图片缺失可看】印象笔记博客备份

    前言: 装饰器用于装饰某些函数或者方法,或者类.可以在函数执行之前或者执行之后,执行一些自定义的操作. 1.定义:装饰器就是一个函数,为新定义的函数.把原函数嵌套到新函数里面.以后就可以在执行新函数的 ...

  8. apache 配置多个虚拟主机,不同的端口

    1.在httpd.conf添加多个端口,如下 Listen 80Listen 8080 2.开启Include conf/extra/httpd-vhosts.conf 3.具体代码如下 <Vi ...

  9. 互斥锁(Mutex)

    互斥锁(Mutex)互斥锁是一个互斥的同步对象,意味着同一时间有且仅有一个线程可以获取它.互斥锁可适用于一个共享资源每次只能被一个线程访问的情况 函数://创建一个处于未获取状态的互斥锁Public ...

  10. 【uTenux实验】消息缓冲区

    uTenux的消息缓冲区是一个通过传递大小可变的消息来实现同步和通信的对象. 消息缓冲区由三部分组成:1.待发消息队列  2.等接收消息的任务队列  3.用来保存缓冲消息的空间. 和信号相比,消息队列 ...