zoukankan      html  css  js  c++  java
  • 初试JqueryEasyUI(附Demo)

    写在前面

    1. 准备
    2. 布局Layout
    3. 菜单树Tree
    4. 内容页Tabs
    5. 右键菜单Menu
    6. 表单Form
    7. 对话框Dialog
    8. 示例Demo下载

      关于easyui不多说,对于我们这样没有美术功底的程序员来说,简直是大大的福利,园里面也有不少人在用,自己在整理一个个站,后台管理要用,正好可以学习下。网上找了相关的教程什么的,但是发现还是官网上的demo讲的狠详细,还有就是下载后的demo示例,但都是某个控件示例,很遗憾,没有整个系统的demo。

      下面我们就一步一步来创建,在做的过程也有许多的问题,对于菜鸟的我们来说,享受其中才是最重要的。

      自己动手,丰衣足食。

    一步一个脚印

    1,准备

      http://www.jeasyui.com/download/index.php下载最新的easyui包,里面有个demo文件夹,开发的时候尽量别删了,我们在做的过程中可以参照里面的demo示例,使用easyui需要引用下面四个css和js:

    1     <link href="EasyUI/themes/default/easyui.css" rel="stylesheet" />
    2     <link href="EasyUI/themes/icon.css" rel="stylesheet" />
    3     <script src="EasyUI/jquery.min.js"></script>
    4     <script src="EasyUI/jquery.easyui.min.js"></script>

      第一个easyui.css是基本的样式,我们在themes文件夹下会发现有几种皮肤,可以切换样式更换不同的控件风格。

      第二个icon.css是图标样式,增加图标按照已有规则创建,下面两个js引用就不多说了。

    2,布局Layout

      后台管理系统一般都是分为四个部分,上部是logo或标题,左部是菜单,下部是版权信息,右部是内容信息。在easyui中我们可以使用Layout进行布局,在demo文件夹-Layout文件夹下的basic.html,基本上是我们需要的效果,复制一下,把高度和宽度修改一下(设置百分比):

      但是浏览一下会发现页面什么也没有,当时很莫名奇妙,试了好久才发现,class="easyui-layout"必须放在body标签里面,通过上面截图可以看到north、south、west、east和center分别代表五个部分,我们不需要east导航可以直接删掉,简单修改下就是我们想要的效果,示例代码:

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="EasyUIDemo.WebForm2" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head id="Head1" runat="server">
     7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     8     <title></title>
     9     <link href="EasyUI/themes/default/easyui.css" rel="stylesheet" />
    10     <link href="EasyUI/themes/icon.css" rel="stylesheet" />
    11     <link href="css/admin.css" rel="stylesheet" />
    12     <script src="EasyUI/jquery.min.js"></script>
    13     <script src="EasyUI/jquery.easyui.min.js"></script>
    14 </head>
    15 <body class="easyui-layout">
    16     <div data-options="region:'north',border:false" style="height: 74px; background: #2596ea; padding: 10px">
    17         <img src="images/logo.png" />EasyUIDemo
    18     </div>
    19     <div data-options="region:'south',border:false" style="height: 23px;">
    20         <div class="footer">EasyUIDemo</div>
    21     </div>
    22     <div data-options="region:'west',split:true" title="West" style=" 170px;"></div>
    23     <div data-options="region:'center',title:'Main Title',iconCls:'icon-ok'">
    24         <table class="easyui-datagrid"
    25             data-options="url:'datagrid_data1.json',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
    26             <thead>
    27                 <tr>
    28                     <th data-options="field:'itemid'" width="80">Item ID</th>
    29                     <th data-options="field:'productid'" width="100">Product ID</th>
    30                     <th data-options="field:'listprice',align:'right'" width="80">List Price</th>
    31                     <th data-options="field:'unitcost',align:'right'" width="80">Unit Cost</th>
    32                     <th data-options="field:'attr'" width="150">Attribute</th>
    33                     <th data-options="field:'status',align:'center'" width="50">Status</th>
    34                 </tr>
    35             </thead>
    36         </table>
    37     </div>
    38 </body>
    39 </html>
    View Code

      效果:

    3,菜单树Tree

      基本的布局创建好了之后,我们需要在左部添加菜单树,我们选取的是demo文件夹-tree文件夹下的lines.html,复制一下添加在west左部div下,lines示例是从json文件中读取树的,我们可以从basic.html中看到创建tree的格式,state:'closed'表示此接单关闭,默认是打开。

      关于tree自定义节点图标,icons.html是自定义节点图标示例,但是从json读取的,格式为:"iconCls":"icon-remove";运行可以看到源代码:

      当时设置以为在span标签设置图标样式,但是并不起作用,花了很多时间尝试,发现原来要在li标签设置,通过这个示例需要提醒大家的是,在用easyui布局的时候,不要查看样式布局,因为运行后都是easyui生成的源代码,并不是原始的,按照这个设置起来会有些问题。

      简单设置一下,就是我们要的效果,示例代码:

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="EasyUIDemo.WebForm2" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head id="Head1" runat="server">
     7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     8     <title></title>
     9     <link href="EasyUI/themes/default/easyui.css" rel="stylesheet" />
    10     <link href="EasyUI/themes/icon.css" rel="stylesheet" />
    11     <link href="css/admin.css" rel="stylesheet" />
    12     <script src="EasyUI/jquery.min.js"></script>
    13     <script src="EasyUI/jquery.easyui.min.js"></script>
    14 </head>
    15 <body class="easyui-layout">
    16     <div data-options="region:'north',border:false" style="height: 74px; background: #2596ea; padding: 10px">
    17         <img src="images/logo.png" />EasyUIDemo
    18     </div>
    19     <div data-options="region:'south',border:false" style="height: 23px;">
    20         <div class="footer">EasyUIDemo</div>
    21     </div>
    22     <div data-options="region:'west',split:true" title="West" style=" 170px;">
    23         <div class="easyui-accordion" data-options="fit:true,border:false">
    24             <div title="系统设置1" data-options="selected:true">
    25                 <div style="margin: 5px">
    26                     <ul class="tree easyui-tree" data-options="animate:true,lines:true">
    27                         <li data-options="iconCls:'icon-group'">
    28                             <span>基本设置</span>
    29                             <ul>
    30                                 <li data-options="iconCls:'icon-group_add'">
    31                                     <span>test1</span>
    32                                 </li>
    33                                 <li data-options="iconCls:'icon-group_delete'">
    34                                     <span>test2</span>
    35                                 </li>
    36                                 <li data-options="iconCls:'icon-group_edit'">
    37                                     <span>test3</span>
    38                                 </li>
    39                             </ul>
    40                         </li>
    41                         <li data-options="state:'closed',iconCls:'icon-joystick'">
    42                             <span>系统设置</span>
    43                             <ul>
    44                                 <li data-options="iconCls:'icon-joystick_add'">
    45                                     <span>test4</span>
    46                                 </li>
    47                             </ul>
    48                         </li>
    49                     </ul>
    50                 </div>
    51             </div>
    52             <div title="系统设置2" style="padding: 10px;">
    53                 content2
    54             </div>
    55             <div title="系统设置3" style="padding: 10px">
    56                 content3
    57             </div>
    58         </div>
    59     </div>
    60     <div data-options="region:'center',title:'Main Title',iconCls:'icon-ok'">
    61         <table class="easyui-datagrid"
    62             data-options="url:'datagrid_data1.json',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
    63             <thead>
    64                 <tr>
    65                     <th data-options="field:'itemid'" width="80">Item ID</th>
    66                     <th data-options="field:'productid'" width="100">Product ID</th>
    67                     <th data-options="field:'listprice',align:'right'" width="80">List Price</th>
    68                     <th data-options="field:'unitcost',align:'right'" width="80">Unit Cost</th>
    69                     <th data-options="field:'attr'" width="150">Attribute</th>
    70                     <th data-options="field:'status',align:'center'" width="50">Status</th>
    71                 </tr>
    72             </thead>
    73         </table>
    74     </div>
    75 </body>
    76 </html>
    View Code

      效果:

    4,内容页Tabs

      菜单tree创建好了,接下来就是center部分的内容页,我们选取的是demo文件夹-tabs文件夹下的tabstools.html,此示例有tools方便我们扩展,在做添加tabs的时候花了很多时间,一个是tabs添加center里面,另一个是tools样式问题,关于第一个还好,经过多次尝试,嵌套里面去了,第二个问题我们先看下截图:

      不知怎的?在ie是可以,谷歌和火狐不行,去掉样式height: 26px;就是好的,但高度就不对了,尝试了好久,最后没办法,创建一个新的webform,一段一段代码贴过去测试,最后发现是头部标签:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">问题,新建的webform:<!DOCTYPE html>就是好的,真没想到是这样的原因导致。

      下面示例代码中的addPanel()和removePanel()是添加tab的js方法,当然也可以在页面加载的时候动态的创建tab,需要注意的是在tabs_div中有data-options="tools:'#tab-tools'"属性,tab-tools要和下面tools的id对应,表示tabs对应的tools,设置好了自动设置样式,不需要你手动的设置。

      示例代码:

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="EasyUIDemo.WebForm1" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     8     <title></title>
     9     <link href="EasyUI/themes/default/easyui.css" rel="stylesheet" />
    10     <link href="EasyUI/themes/icon.css" rel="stylesheet" />
    11     <link href="css/admin.css" rel="stylesheet" />
    12     <script src="EasyUI/jquery.min.js"></script>
    13     <script src="EasyUI/jquery.easyui.min.js"></script>
    14 </head>
    15 <body class="easyui-layout">
    16     <div data-options="region:'north',border:false" style="height: 74px; background: #2596ea; padding: 10px">
    17         <img src="images/logo.png" />EasyUIDemo
    18     </div>
    19     <div data-options="region:'west',split:true,title:'导航菜单'" style=" 170px;">
    20         <div class="easyui-accordion" data-options="fit:true,border:false">
    21             <div title="系统设置1" data-options="selected:true">
    22                 <div style="margin: 5px">
    23                     <ul class="tree easyui-tree" data-options="animate:true,lines:true">
    24                         <li data-options="iconCls:'icon-group'">
    25                             <span>基本设置</span>
    26                             <ul>
    27                                 <li data-options="iconCls:'icon-group_add'">
    28                                     <span>test1</span>
    29                                 </li>
    30                                 <li data-options="iconCls:'icon-group_delete'">
    31                                     <span>test2</span>
    32                                 </li>
    33                                 <li data-options="iconCls:'icon-group_edit'">
    34                                     <span>test3</span>
    35                                 </li>
    36                             </ul>
    37                         </li>
    38                         <li data-options="state:'closed',iconCls:'icon-joystick'">
    39                             <span>系统设置</span>
    40                             <ul>
    41                                 <li data-options="iconCls:'icon-joystick_add'">
    42                                     <span>test4</span>
    43                                 </li>
    44                             </ul>
    45                         </li>
    46                     </ul>
    47                 </div>
    48             </div>
    49             <div title="系统设置2" style="padding: 10px;">
    50                 content2
    51             </div>
    52             <div title="系统设置3" style="padding: 10px">
    53                 content3
    54             </div>
    55         </div>
    56     </div>
    57     <div data-options="region:'south',border:false" style="height: 23px;">
    58         <div class="footer">EasyUIDemo</div>
    59     </div>
    60     <div data-options="region:'center'">
    61         <div id="tabs" class="easyui-tabs" data-options="tools:'#tab-tools'">
    62             <div title="主页" data-options="iconCls:'icon-house'" style="padding: 10px; height: 100%;">主页</div>
    63         </div>
    64         <div id="tab-tools">
    65             <a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-add'" onclick="addPanel()"></a>
    66             <a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-remove'" onclick="removePanel()"></a>
    67         </div>
    68     </div>
    69     <script type="text/javascript">
    70         var index = 0;
    71         function addPanel() {
    72             index++;
    73             $('#tabs').tabs('add', {
    74                 title: 'Tab' + index,
    75                 content: '<div style="padding:10px">Content' + index + '</div>',
    76                 closable: true
    77             });
    78         }
    79         function removePanel() {
    80             var tab = $('#tabs').tabs('getSelected');
    81             if (tab) {
    82                 var index = $('#tabs').tabs('getTabIndex', tab);
    83                 $('#tabs').tabs('close', index);
    84             }
    85         }
    86     </script>
    87 </body>
    88 </html>
    View Code

      效果:

    5,右键菜单Menu

      tab创建好之后,我们需要在tab添加右键menu,以便我们的tab操作,demo文件夹-menu文件夹下的basic.html,我们把代码复制过来,可以看到先创建一个div指示右键menu,js绑定右击代码:

    1         $(function(){
    2             $(document).bind('contextmenu',function(e){
    3                 e.preventDefault();
    4                 $('#mm').menu('show', {
    5                     left: e.pageX,
    6                     top: e.pageY
    7                 });
    8             });
    9         });

      上面代码是绑定区域是整个页面,我们需要修改一下:把$(document) 改成$(".tabs-inner"),.tabs-inner是每个tab的css,查看页面源代码我们就可以看到。

      绑定右击事件后,下面就是关闭tab了,easyui提供了关闭tab的接口:$('#tabs').tabs('close', tab标题);根据此接口我们可以扩展其他的菜单,比如关闭全部,除此之外全部关闭等等,就像vs的tab管理一样。

      tab管理代码:

     1 //关闭tab
     2 function closeTab(action) {
     3     var alltabs = $('#tabs').tabs('tabs');
     4     var currentTab = $('#tabs').tabs('getSelected');
     5     var allTabtitle = [];
     6     $.each(alltabs, function (i, n) {
     7         allTabtitle.push($(n).panel('options').title);
     8     })
     9     switch (action) {
    10         case "refresh":
    11             var iframe = $(currentTab.panel('options').content);
    12             var src = iframe.attr('src');
    13             $('#tabs').tabs('update', {
    14                 tab: currentTab,
    15                 options: {
    16                     content: createFrame(src)
    17                 }
    18             })
    19             break;
    20         case "close":
    21             var currtab_title = currentTab.panel('options').title;
    22             $('#tabs').tabs('close', currtab_title);
    23             break;
    24         case "closeall":
    25             $.each(allTabtitle, function (i, n) {
    26                 if (n != onlyOpenTitle) {
    27                     $('#tabs').tabs('close', n);
    28                 }
    29             });
    30             break;
    31         case "closeother":
    32             var currtab_title = currentTab.panel('options').title;
    33             $.each(allTabtitle, function (i, n) {
    34                 if (n != currtab_title && n != onlyOpenTitle) {
    35                     $('#tabs').tabs('close', n);
    36                 }
    37             });
    38             break;
    39         case "closeright":
    40             var tabIndex = $('#tabs').tabs('getTabIndex', currentTab);
    41 
    42             if (tabIndex == alltabs.length - 1) {
    43                 alert('亲,后边没有啦 ^@^!!');
    44                 return false;
    45             }
    46             $.each(allTabtitle, function (i, n) {
    47                 if (i > tabIndex) {
    48                     if (n != onlyOpenTitle) {
    49                         $('#tabs').tabs('close', n);
    50                     }
    51                 }
    52             });
    53             break;
    54         case "closeleft":
    55             var tabIndex = $('#tabs').tabs('getTabIndex', currentTab);
    56             if (tabIndex == 1) {
    57                 alert('亲,前边那个上头有人,咱惹不起哦。 ^@^!!');
    58                 return false;
    59             }
    60             $.each(allTabtitle, function (i, n) {
    61                 if (i < tabIndex) {
    62                     if (n != onlyOpenTitle) {
    63                         $('#tabs').tabs('close', n);
    64                     }
    65                 }
    66             });
    67             break;
    68         case "exit":
    69             $('#closeMenu').menu('hide');
    70             break;
    71     }
    72 }

      整合js代码:

      1 var onlyOpenTitle = "主页";//不允许关闭的标签的标题
      2 $(function () {
      3     tabClose();
      4     tabCloseEven();
      5 })
      6 
      7 function tabClose() {
      8     /*双击关闭TAB选项卡*/
      9     $(".tabs-inner").dblclick(function () {
     10         var subtitle = $(this).children(".tabs-closable").text();
     11         $('#tabs').tabs('close', subtitle);
     12     })
     13     /*为选项卡绑定右键*/
     14     $(".tabs-inner").bind('contextmenu', function (e) {
     15         $('#mm').menu('show', {
     16             left: e.pageX,
     17             top: e.pageY
     18         });
     19         var subtitle = $(this).children(".tabs-closable").text();
     20         $('#mm').data("currtab", subtitle);
     21         $('#tabs').tabs('select', subtitle);
     22         return false;
     23     });
     24 }
     25 //绑定右键菜单事件
     26 function tabCloseEven() {
     27     $('#mm').menu({
     28         onClick: function (item) {
     29             closeTab(item.id);
     30         }
     31     });
     32     return false;
     33 }
     34 
     35 //创建/移除tab
     36 var index = 0;
     37 function addTab(subtitle, url, icon) {
     38     index++;
     39     if (!$('#tabs').tabs('exists', subtitle)) {
     40         $('#tabs').tabs('add', {
     41             title: 'Tab' + index,
     42             content: createFrame('http://www.baidu.com/'),
     43             closable: true,
     44             icon: ''
     45         });
     46     } else {
     47         $('#tabs').tabs('select', subtitle);
     48         $('#mm-tabupdate').click();
     49     }
     50     tabClose();
     51 }
     52 function removeTab() {
     53     var tab = $('#tabs').tabs('getSelected');
     54     if (tab) {
     55         var index = $('#tabs').tabs('getTabIndex', tab);
     56         $('#tabs').tabs('close', index);
     57     }
     58 }
     59 //创建Frame
     60 function createFrame(url) {
     61     var s = '<iframe scrolling="auto" frameborder="0"  src="' + url + '" style="100%;height:100%;"></iframe>';
     62     return s;
     63 }
     64 
     65 //关闭tab
     66 function closeTab(action) {
     67     var alltabs = $('#tabs').tabs('tabs');
     68     var currentTab = $('#tabs').tabs('getSelected');
     69     var allTabtitle = [];
     70     $.each(alltabs, function (i, n) {
     71         allTabtitle.push($(n).panel('options').title);
     72     })
     73     switch (action) {
     74         case "refresh":
     75             var iframe = $(currentTab.panel('options').content);
     76             var src = iframe.attr('src');
     77             $('#tabs').tabs('update', {
     78                 tab: currentTab,
     79                 options: {
     80                     content: createFrame(src)
     81                 }
     82             })
     83             break;
     84         case "close":
     85             var currtab_title = currentTab.panel('options').title;
     86             $('#tabs').tabs('close', currtab_title);
     87             break;
     88         case "closeall":
     89             $.each(allTabtitle, function (i, n) {
     90                 if (n != onlyOpenTitle) {
     91                     $('#tabs').tabs('close', n);
     92                 }
     93             });
     94             break;
     95         case "closeother":
     96             var currtab_title = currentTab.panel('options').title;
     97             $.each(allTabtitle, function (i, n) {
     98                 if (n != currtab_title && n != onlyOpenTitle) {
     99                     $('#tabs').tabs('close', n);
    100                 }
    101             });
    102             break;
    103         case "closeright":
    104             var tabIndex = $('#tabs').tabs('getTabIndex', currentTab);
    105 
    106             if (tabIndex == alltabs.length - 1) {
    107                 alert('亲,后边没有啦 ^@^!!');
    108                 return false;
    109             }
    110             $.each(allTabtitle, function (i, n) {
    111                 if (i > tabIndex) {
    112                     if (n != onlyOpenTitle) {
    113                         $('#tabs').tabs('close', n);
    114                     }
    115                 }
    116             });
    117             break;
    118         case "closeleft":
    119             var tabIndex = $('#tabs').tabs('getTabIndex', currentTab);
    120             if (tabIndex == 1) {
    121                 alert('亲,前边那个上头有人,咱惹不起哦。 ^@^!!');
    122                 return false;
    123             }
    124             $.each(allTabtitle, function (i, n) {
    125                 if (i < tabIndex) {
    126                     if (n != onlyOpenTitle) {
    127                         $('#tabs').tabs('close', n);
    128                     }
    129                 }
    130             });
    131             break;
    132         case "exit":
    133             $('#closeMenu').menu('hide');
    134             break;
    135     }
    136 }
    View Code

      html代码:

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="EasyUIDemo._Default" %>
     2 
     3 <!DOCTYPE html>
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     8     <title></title>
     9     <link href="EasyUI/themes/default/easyui.css" rel="stylesheet" />
    10     <link href="EasyUI/themes/icon.css" rel="stylesheet" />
    11     <link href="css/admin.css" rel="stylesheet" />
    12     <script src="EasyUI/jquery.min.js"></script>
    13     <script src="EasyUI/jquery.easyui.min.js"></script>
    14     <script src="js/common.js"></script>
    15 </head>
    16 <body class="easyui-layout" data-options="fit:true,scroll:'no'">
    17     <div data-options="region:'north',border:false" style="height: 74px; background: #2596ea; padding: 10px">
    18         <img src="images/logo.png" />EasyUIDemo
    19     </div>
    20     <div data-options="region:'west',split:true,title:'导航菜单'" style=" 170px;">
    21         <div class="easyui-accordion" data-options="fit:true,border:false">
    22             <div title="系统设置1" data-options="selected:true">
    23                 <div style="margin: 5px">
    24                     <ul class="tree easyui-tree" data-options="animate:true,lines:true">
    25                         <li data-options="iconCls:'icon-group'">
    26                             <span>基本设置</span>
    27                             <ul>
    28                                 <li data-options="iconCls:'icon-group_add'">
    29                                     <span>test1</span>
    30                                 </li>
    31                                 <li data-options="iconCls:'icon-group_delete'">
    32                                     <span>test2</span>
    33                                 </li>
    34                                 <li data-options="iconCls:'icon-group_edit'">
    35                                     <span>test3</span>
    36                                 </li>
    37                             </ul>
    38                         </li>
    39                         <li data-options="state:'closed',iconCls:'icon-joystick'">
    40                             <span>系统设置</span>
    41                             <ul>
    42                                 <li data-options="iconCls:'icon-joystick_add'">
    43                                     <span>test4</span>
    44                                 </li>
    45                             </ul>
    46                         </li>
    47                     </ul>
    48                 </div>
    49             </div>
    50             <div title="系统设置2" style="padding: 10px;">
    51                 content2
    52             </div>
    53             <div title="系统设置3" style="padding: 10px">
    54                 content3
    55             </div>
    56         </div>
    57     </div>
    58     <div data-options="region:'south',border:false" style="height: 23px;">
    59         <div class="footer">EasyUIDemo</div>
    60     </div>
    61     <div data-options="region:'center'">
    62         <div id="tabs" class="easyui-tabs" data-options="tools:'#tab-tools',fit:true,border:false" >
    63             <div title="主页" data-options="iconCls:'icon-house'" style="padding: 10px;">主页</div>
    64         </div>
    65         <div id="tab-tools">
    66             <a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-add'" onclick="addTab()"></a>
    67             <a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-remove'" onclick="removeTab()"></a>
    68         </div>
    69     </div>
    70     <div id="mm" class="easyui-menu" style=" 150px;">
    71         <div id="refresh" data-options="iconCls:'icon-arrow_refresh'">刷新</div>
    72         <div class="menu-sep"></div>
    73         <div id="close">关闭</div>
    74         <div id="closeall">全部关闭</div>
    75         <div id="closeother">除此之外全部关闭</div>
    76         <div class="menu-sep"></div>
    77         <div id="closeright">当前页右侧全部关闭</div>
    78         <div id="closeleft">当前页左侧全部关闭</div>
    79         <div class="menu-sep"></div>
    80         <div id="exit">退出</div>
    81     </div>
    82 </body>
    83 </html>
    View Code

      效果:

    6,表单Form

      内容管理少不了form表单,其实在easyui使用form表单最简单,样式、验证、布局等都是提供的,只要我们简单设置一下属性就可以了,demo文件夹-form文件夹下的basic.html,我们看下文本框的代码:

    1  <input class="easyui-validatebox" type="text" name="email" data-options="required:true,validType:'email'"></input>

      easyui-validatebox指示验证文本控件,data-options="required:true,validType:'email'",required表示文本框必输,validType表示验证文本框方式,当然也支持其他url、电话验证等,详细的验证信息可以在demo文件夹-validatebox文件夹查看示例。form表单没什么说的,大家看示例demo就可以找到想要的东西。

      这边需要注意的是验证默认是英文,中文的话需要引用中文包:<script src="EasyUI/locale/easyui-lang-zh_CN.js"></script>

      html代码:

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5     <title>EasyUI from</title>
     6     <link href="EasyUI/themes/default/easyui.css" rel="stylesheet" />
     7     <link href="EasyUI/themes/icon.css" rel="stylesheet" />
     8     <link href="css/admin.css" rel="stylesheet" />
     9     <script src="EasyUI/jquery.min.js"></script>
    10     <script src="EasyUI/jquery.easyui.min.js"></script>
    11     <script src="EasyUI/locale/easyui-lang-zh_CN.js"></script>
    12 </head>
    13 <body>
    14     <div style="margin: 10px 0;"></div>
    15         <div style="padding: 10px 0 10px 60px">
    16             <form id="ff" method="post">
    17                 <table>
    18                     <tr>
    19                         <td>名称:</td>
    20                         <td>
    21                             <input class="easyui-validatebox" type="text" name="name" data-options="required:true"></input></td>
    22                     </tr>
    23                     <tr>
    24                         <td>邮箱:</td>
    25                         <td>
    26                             <input class="easyui-validatebox" type="text" name="email" data-options="required:true,validType:'email'"></input></td>
    27                     </tr>
    28                     <tr>
    29                         <td>标题:</td>
    30                         <td>
    31                             <input class="easyui-validatebox" type="text" name="subject" data-options="required:true"></input></td>
    32                     </tr>
    33                     <tr>
    34                         <td>内容:</td>
    35                         <td>
    36                             <textarea name="message" style="height: 60px;"></textarea></td>
    37                     </tr>
    38                     <tr>
    39                         <td>语言:</td>
    40                         <td>
    41                             <select class="easyui-combobox" name="language">
    42                                 <option value="ar">Arabic</option>
    43                                 <option value="bg">Bulgarian</option>
    44                                 <option value="ca">Catalan</option>
    45                                 <option value="zh-cht">Chinese Traditional</option>
    46                                 <option value="cs">Czech</option>
    47                                 <option value="da">Danish</option>
    48                                 <option value="nl">Dutch</option>
    49                                 <option value="en" selected="selected">English</option>
    50                                 <option value="et">Estonian</option>
    51                                 <option value="fi">Finnish</option>
    52                                 <option value="fr">French</option>
    53                                 <option value="de">German</option>
    54                                 <option value="el">Greek</option>
    55                                 <option value="ht">Haitian Creole</option>
    56                                 <option value="he">Hebrew</option>
    57                                 <option value="hi">Hindi</option>
    58                                 <option value="mww">Hmong Daw</option>
    59                                 <option value="hu">Hungarian</option>
    60                                 <option value="id">Indonesian</option>
    61                                 <option value="it">Italian</option>
    62                                 <option value="ja">Japanese</option>
    63                                 <option value="ko">Korean</option>
    64                                 <option value="lv">Latvian</option>
    65                                 <option value="lt">Lithuanian</option>
    66                                 <option value="no">Norwegian</option>
    67                                 <option value="fa">Persian</option>
    68                                 <option value="pl">Polish</option>
    69                                 <option value="pt">Portuguese</option>
    70                                 <option value="ro">Romanian</option>
    71                                 <option value="ru">Russian</option>
    72                                 <option value="sk">Slovak</option>
    73                                 <option value="sl">Slovenian</option>
    74                                 <option value="es">Spanish</option>
    75                                 <option value="sv">Swedish</option>
    76                                 <option value="th">Thai</option>
    77                                 <option value="tr">Turkish</option>
    78                                 <option value="uk">Ukrainian</option>
    79                                 <option value="vi">Vietnamese</option>
    80                             </select>
    81                         </td>
    82                     </tr>
    83                 </table>
    84             </form>
    85         </div>
    86         <div style=" padding: 5px; margin-left:100px;">
    87             <a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()">提交</a>
    88             <a href="javascript:void(0)" class="easyui-linkbutton" onclick="clearForm()">清除</a>
    89         </div>
    90     <script>
    91         function submitForm() {
    92             $('#ff').form('submit');
    93         }
    94         function clearForm() {
    95             $('#ff').form('clear');
    96         }
    97     </script>
    98 </body>
    99 </html>
    View Code

      效果:

    7,对话框Dialog

      使用dialog和使用form一样简单,demo文件夹-Dialog文件夹下的toolbarbuttons.html,我们创建一个表单提交后对话框提示。

     1     <div id="dlg" class="easyui-dialog" title="dialog" style=" 250px; height: 120px; padding: 10px"
     2         data-options="
     3                 iconCls: 'icon-save',
     4                 buttons: [{
     5                     text:'Ok',
     6                     iconCls:'icon-ok',
     7                     handler:function(){
     8                         alert('ok');
     9                     }
    10                 },{
    11                     text:'Cancel',
    12                     handler:function(){
    13                         alert('cancel');;
    14                     }
    15                 }]
    16             ">
    17         确认提交吗?
    18     </div>

      在data-options-buttons选项,表示对话框下方的按钮集合,也有在标题下方的按钮集合,属性是toolbar,打开dialog代码:$('#dlg').dialog('open'),关闭参数改为:close即可。dialog里的内容可以嵌套div,也可以嵌套frame,这个可以随意扩展。

      html代码:

      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2 <html xmlns="http://www.w3.org/1999/xhtml">
      3 <head>
      4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      5     <title>EasyUI from</title>
      6     <link href="EasyUI/themes/default/easyui.css" rel="stylesheet" />
      7     <link href="EasyUI/themes/icon.css" rel="stylesheet" />
      8     <link href="css/admin.css" rel="stylesheet" />
      9     <script src="EasyUI/jquery.min.js"></script>
     10     <script src="EasyUI/jquery.easyui.min.js"></script>
     11     <script src="EasyUI/locale/easyui-lang-zh_CN.js"></script>
     12 </head>
     13 <body>
     14     <div style="margin: 10px 0;"></div>
     15     <div style="padding: 10px 0 10px 60px">
     16         <form id="ff" method="post">
     17             <table>
     18                 <tr>
     19                     <td>名称:</td>
     20                     <td>
     21                         <input class="easyui-validatebox" type="text" name="name" data-options="required:true"></input></td>
     22                 </tr>
     23                 <tr>
     24                     <td>邮箱:</td>
     25                     <td>
     26                         <input class="easyui-validatebox" type="text" name="email" data-options="required:true,validType:'email'"></input></td>
     27                 </tr>
     28                 <tr>
     29                     <td>标题:</td>
     30                     <td>
     31                         <input class="easyui-validatebox" type="text" name="subject" data-options="required:true"></input></td>
     32                 </tr>
     33                 <tr>
     34                     <td>内容:</td>
     35                     <td>
     36                         <textarea name="message" style="height: 60px;"></textarea></td>
     37                 </tr>
     38                 <tr>
     39                     <td>语言:</td>
     40                     <td>
     41                         <select class="easyui-combobox" name="language">
     42                             <option value="ar">Arabic</option>
     43                             <option value="bg">Bulgarian</option>
     44                             <option value="ca">Catalan</option>
     45                             <option value="zh-cht">Chinese Traditional</option>
     46                             <option value="cs">Czech</option>
     47                             <option value="da">Danish</option>
     48                             <option value="nl">Dutch</option>
     49                             <option value="en" selected="selected">English</option>
     50                             <option value="et">Estonian</option>
     51                             <option value="fi">Finnish</option>
     52                             <option value="fr">French</option>
     53                             <option value="de">German</option>
     54                             <option value="el">Greek</option>
     55                             <option value="ht">Haitian Creole</option>
     56                             <option value="he">Hebrew</option>
     57                             <option value="hi">Hindi</option>
     58                             <option value="mww">Hmong Daw</option>
     59                             <option value="hu">Hungarian</option>
     60                             <option value="id">Indonesian</option>
     61                             <option value="it">Italian</option>
     62                             <option value="ja">Japanese</option>
     63                             <option value="ko">Korean</option>
     64                             <option value="lv">Latvian</option>
     65                             <option value="lt">Lithuanian</option>
     66                             <option value="no">Norwegian</option>
     67                             <option value="fa">Persian</option>
     68                             <option value="pl">Polish</option>
     69                             <option value="pt">Portuguese</option>
     70                             <option value="ro">Romanian</option>
     71                             <option value="ru">Russian</option>
     72                             <option value="sk">Slovak</option>
     73                             <option value="sl">Slovenian</option>
     74                             <option value="es">Spanish</option>
     75                             <option value="sv">Swedish</option>
     76                             <option value="th">Thai</option>
     77                             <option value="tr">Turkish</option>
     78                             <option value="uk">Ukrainian</option>
     79                             <option value="vi">Vietnamese</option>
     80                         </select>
     81                     </td>
     82                 </tr>
     83             </table>
     84         </form>
     85     </div>
     86     <div style="padding: 5px; margin-left: 100px;">
     87         <a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()">提交</a>
     88         <a href="javascript:void(0)" class="easyui-linkbutton" onclick="clearForm()">清除</a>
     89     </div>
     90     <div id="dlg" class="easyui-dialog" title="dialog" style=" 250px; height: 120px; padding: 10px"
     91         data-options="
     92                 iconCls: 'icon-save',
     93                 buttons: [{
     94                     text:'Ok',
     95                     iconCls:'icon-ok',
     96                     handler:function(){
     97                         alert('ok');
     98                     }
     99                 },{
    100                     text:'Cancel',
    101                     handler:function(){
    102                         alert('cancel');;
    103                     }
    104                 }]
    105             ">
    106         确认提交吗?
    107     </div>
    108     <script>
    109         $(function () {
    110             $('#dlg').dialog('close')
    111         })
    112         function submitForm() {
    113             $('#dlg').dialog('open')
    114             //$('#ff').form('submit');
    115         }
    116         function clearForm() {
    117             $('#ff').form('clear');
    118         }
    119     </script>
    120 </body>
    121 </html>
    View Code

      效果:

    8,示例Demo下载

      下载地址:http://pan.baidu.com/s/1c09YVi4

    后记

      easyui默认提供了几个icons的图标,在themes文件夹下的icons文件夹中,我们在做树菜单的时候会用到其他的小图标:

      网上找了一个包,还蛮全的,分享给大家,下载地址:http://pan.baidu.com/s/1hqKGehQ

      关于easyui简单demo就写到这里,下篇计划集合编辑器,在下篇计划把静态demo变成动态(asp.net、ef),创建一个简单的新闻发布系统demo,再下篇计划结合mvc,再下篇。。。最后应用到个站中,敬请期待。

      如果你觉得本篇文章对你有所帮助,请点击右下部“推荐”,^_^

      参考教程:

  • 相关阅读:
    Sql 格式化日期
    shape 格式标准
    flex 状态
    flex 特效集
    invalidateProperties
    flex for循环
    关于继承
    win32常见寄存器register
    asm寻址方式
    java jni调用 非托管 dll
  • 原文地址:https://www.cnblogs.com/xishuai/p/3620327.html
Copyright © 2011-2022 走看看