你的位置:首页 > Java教程

[Java教程]使用easyui进行上左右布局


  在后台管理系统开发的过程中,上左右的布局是最常见的页面布局方式,现在我们来看看使用easyui这个jquery前端框架如何快速搭建一个可用的页面框架。

1.在页面中引入easyui所需的文件

1 <%-- 加载easyui的样式文件,bootstrap风格 --%>2 <link href="${ctx }/css/themes/bootstrap/easyui.css" rel="stylesheet">3 <link href="${ctx }/css/themes/icon.css" rel="stylesheet">4 <%-- 加载jquery和easyui的脚本文件 --%>5 <script src="${ctx }/js/jquery-easyui-1.4.4/jquery.min.js"></script>6 <script src="${ctx }/js/jquery-easyui-1.4.4/jquery.easyui.min.js"></script>7 <script src="${ctx }/js/jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script>

2.在页面body部分构建必要的html结构

<body><div id="home-layout">  <!-- 页面北部,页面标题 -->  <div data-options="region:'north'" style="height:50px;">  <!-- add your code -->  </div>  <!-- 页面西部,菜单 -->  <div data-options="region:'west',title:'菜单栏'" style="width:200px;">    <div class="home-west">      <ul id="home-west-tree"></ul>    </div>  </div>  <!-- 页面中部,主要内容 -->  <div data-options="region:'center'">    <div id="home-tabs">      <div title="首页">        <h2 style="text-align: center">欢迎登录</h2>      </div>    </div>  </div></div></body>

  这里需要注意一点:easyui在使用layout布局的时候,north、south需要指定高度,west、east需要指定宽度,而center会自动适应高和宽。

3.使用js初始化easyui组件

  我个人比较推荐使用js代码去初始化easyui组件,而不使用easyui标签中的data-options属性去初始化。因为对于后台开发人员来说,写js代码可能比写html标签更加熟悉,而且这样使得html代码更加简洁。

<script>$(function(){  /*   * 初始化layout   */  $("#home-layout").layout({  //使layout自适应容器  fit: true  });  /*   * 获取左侧菜单树,并为其节点指定单击事件   */  $("#home-west-tree").tree({    //加载菜单的数据,必需    url: "${ctx }/pages/home-west-tree.json",    method: "get",    //是否有层次线    lines: true,    //菜单打开与关闭是否有动画效果    animate: true,    //菜单点击事件    onClick: function(node){      if(node.attributes && node.attributes.url){         //打开内容区的tab,代码在其后        addTab({          url: "${ctx }/" + node.attributes.url,          title: node.text        });      }    }  });  /*  * 初始化内容区的tabs  */  $("#home-tabs").tabs({    fit : true,    //tab页是否有边框    border : false  });
})</script><script>/* * 在内容区添加一个tab */function addTab(params){ var t = $("#home-tabs"); var url = params.url; var opts = { title: params.title, closable: true, href: url, fit: true, border: false }; //如果被选中的节点对应的tab已经存在,则选中该tab并刷新内容 //否则打开一个新的tab if(t.tabs("exists", opts.title)){ var tab = t.tabs("select", opts.title).tabs("getSelected"); t.tabs("update", { tab: tab, options: opts }); }else{ t.tabs("add", opts); }}</script>

4.easyui-tree组件所需的json格式

  easyui使用的传输格式为json,它对json内容的格式有比较严格的限制,所以请注意查看api

[{  "text":"区域管理",  "attributes":{    "url":"pages/consume/area/areaList.jsp"  }},{  "text":"预约信息管理",  "children":[{    "text":"商户预约信息查询",    "attributes":{      "url":"/pages/consume/reservation/merchantReservation/merchantReservationList.jsp"    }  }]},{  "text":"准入申请管理",  "children":[{    "text":"商户准入申请",    "state":"closed",    "children":[{      "text":"商户待处理申请",      "attributes":{        "url":"waterAply.do?method=toList&channelType=1&handleFlag=aply_wait"      }    },{      "text":"商户审批中申请",      "attributes":{        "url":"waterAply.do?method=toList&channelType=1&handleFlag=aply_current"      }    },{      "text":"商户审批通过申请",      "attributes":{        "url":"waterAply.do?method=toList&channelType=1&handleFlag=aply_pass"      }    },{      "text":"商户被拒绝申请",      "attributes":{        "url":"waterAply.do?method=toList&channelType=1&handleFlag=aply_refuse"      }    }]  }]},{  "text":"准入审批管理",  "children":[{    "text":"商户审批管理",    "state":"closed",    "children":[{      "text":"当前任务",      "children":[{        "text":"商户当前初审任务",        "attributes":{          "url":"pages/consume/approval/merchantApproval/merchantApprovalTrial.jsp"        }      },{        "text":"商户当前复审任务",        "attributes":{          "url":"pages/consume/approval/merchantApproval/merchantApprovalRetrial.jsp"        }      }]    },{      "text":"商户已完成任务",      "attributes":{        "url":"pages/consume/approval/merchantApproval/merchantApprovalDone.jsp"      }    },{      "text":"商户不通过任务",      "attributes":{        "url":"pages/consume/approval/merchantApproval/merchantApprovalRefuse.jsp"      }    }]  }]}]


就这样,我们使用easyui完成了简单的上左右布局。