• 【EasyUI】EasyUI 1.3.6 tree无法使用filter进行筛选,自行写了个简易筛选器,不支持超大数据


    1. html代码

    DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>测试title>
        <base>
        <link rel="stylesheet" type="text/css" href="./plugins/easyui/themes/default/easyui.css">
        <script type="text/javascript" src="./plugins/js/jquery.min.js">script>
        <script type="text/javascript" src="./plugins/easyui/jquery.easyui.min.js">script>
    head>
    
    <body class="easyui-layout">
    
        <input id="search_box" type="text" placeholder="输入关键词进行筛选...">
        <ul id="my_tree">ul>
    
    body>
    
    <script type="text/javascript">
        $(function(){
            var treeData = [{
                "checked": false,
                "children": [],
                "id": "1",
                "state": "open",
                "text": ".bash_logout"
            }, {
                "checked": false,
                "children": [],
                "id": "2",
                "state": "open",
                "text": ".bash_profile"
            }, {
                "checked": false,
                "children": [],
                "id": "3",
                "state": "open",
                "text": ".bashrc"
            }, {
                "checked": false,
                "children": [],
                "id": "4",
                "state": "open",
                "text": "sshd_config.bak"
            }, {
                "checked": false,
                "children": [{
                    "checked": false,
                    "children": [],
                    "id": "6",
                    "state": "open",
                    "text": "test666.txt"
                }, {
                    "checked": false,
                    "children": [],
                    "id": "7",
                    "state": "open",
                    "text": "tes888.txt"
                }, {
                    "checked": false,
                    "children": [{
                        "checked": false,
                        "children": [{
                            "checked": false,
                            "children": [],
                            "id": "10",
                            "state": "open",
                            "text": "lbl.txt"
                        },{
                            "checked": false,
                            "children": [],
                            "id": "11",
                            "state": "open",
                            "text": "aaa.txt"
                        }],
                        "id": "9",
                        "state": "open",
                        "text": "lbl"
                    }],
                    "id": "8",
                    "state": "close",
                    "text": "zxl"
                }],
                "id": "5",
                "state": "close",
                "text": "files"
            }]; 
            
            var tree = $('#my_tree').tree({
                data: treeData,
            });
            $('#search_box').on('keyup', function(){
                var val = $(this).val().trim();
                if (val === '') {
                    // 先清除之前的筛选效果,显示所有节点
                    tree.find('div.tree-node').show();
                    tree.tree('expandAll');
                } else {
                    tree.tree('collapseAll');
                    filterTree(tree, val);
                }
            });
    
            function filterTree(tree, keyword) {
                var allNodes = tree.find('div.tree-node');
                allNodes.each(function(){
                    var node = $(this);
                    var nodeText = node.find('.tree-title').text();
                    // 首先默认隐藏所有节点
                    node.hide();
                    // 检查当前节点为文件或者文件夹,文件夹则不判断,跳过
                    // 获取当前节点的子节点
                    var children = node.next('ul').children('li'); 
                    if(children.length>0){
                        // 接下来检查子节点
                        hasVisibleChild = subData(children,keyword);
                        // 如果有可见子节点,则显示父节点,并设置为展开状态
                        if (hasVisibleChild) {
                            node.show();
                            tree.tree('expand', node.attr('id')); // 确保父节点展开
                        }
                    }else{
                        // 检查当前节点是否匹配
                        if (nodeText.indexOf(keyword) !== -1) {
                            node.show(); // 如果匹配,则显示
                        }
                    }
                });
                tree.tree('expandAll');
            }
    
            function subData(children,keyword){
                var hasVisibleChild = false;
                children.each(function(){
                    var childNode = $(this).children('div.tree-node');
                    var childNodeText = childNode.find('.tree-title').text();
                    // 如果子节点匹配,显示子节点,并标记有可见子节点
                    var subChildNode = childNode.next('ul').children('li');
                    if(subChildNode.length>0){
                        hasVisibleChild = subData(subChildNode,keyword);
                    }else{
                        if (childNodeText.indexOf(keyword) !== -1) {
                            childNode.show();
                            hasVisibleChild = true;
                            return false;
                        }
                    }
                    
                });
                return hasVisibleChild;
            } 
        });
    script>
    html>
    
    

    2. 搜索后定位到第一个值并红色展示

    DOCTYPE html>
    <html>
    
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>测试title>
        <base>
        <link rel="stylesheet" type="text/css" href="./plugins/easyui/themes/default/easyui.css">
        <script type="text/javascript" src="./plugins/js/jquery.min.js">script>
        <script type="text/javascript" src="./plugins/easyui/jquery.easyui.min.js">script>
    head>
    
    <body class="easyui-layout">
    
        <input type="text" id="findnode" /><input type="button" id="btn" value="搜索">
        <ul id="tree" class="easyui-tree" data-options="animate:true,lines:true">ul>
    
    body>
    
    <script type="text/javascript">
        var selectArray = [];
        $(function () {
            var treeData = [{
                "checked": false,
                "children": [],
                "id": "1",
                "state": "open",
                "text": ".bash_logout"
            }, {
                "checked": false,
                "children": [],
                "id": "2",
                "state": "open",
                "text": ".bash_profile"
            }, {
                "checked": false,
                "children": [],
                "id": "3",
                "state": "open",
                "text": ".bashrc"
            }, {
                "checked": false,
                "children": [],
                "id": "4",
                "state": "open",
                "text": "sshd_config.bak"
            }, {
                "checked": false,
                "children": [{
                    "checked": false,
                    "children": [],
                    "id": "6",
                    "state": "open",
                    "text": "test666.txt"
                }, {
                    "checked": false,
                    "children": [],
                    "id": "7",
                    "state": "open",
                    "text": "tes888.txt"
                }, {
                    "checked": false,
                    "children": [{
                        "checked": false,
                        "children": [{
                            "checked": false,
                            "children": [],
                            "id": "10",
                            "state": "open",
                            "text": "lbl.txt"
                        }, {
                            "checked": false,
                            "children": [],
                            "id": "11",
                            "state": "open",
                            "text": "aaa.txt"
                        }],
                        "id": "9",
                        "state": "closed",
                        "text": "lbl"
                    }],
                    "id": "8",
                    "state": "closed",
                    "text": "zxl"
                }],
                "id": "5",
                "state": "closed",
                "text": "files"
            }];
    
            var tree = $('#tree').tree({
                data: treeData,
            });
    
            $("#btn").click(function (e) {
                selectArray.forEach(function (id) {
                    var nodeElement = $('#' + id);
                        nodeElement.removeClass('nodeback');
                })
                var arr = $("span[class*='tree-title']");
                var str = $("#findnode").val();
                if (str.length <= 0) {
                    tree.tree('collapseAll');
                    return;
                }
                if (arr.length <= 0) return;
                var getObjs = $().toArray();
                var idpre = '_easyui_tree_';
                for (i = 0; i < arr.length; i++) {
                    if ($(arr[i]).html().includes(str)) {
                        getObjs.push($(arr[i]));
                    }
                }
    
                if (getObjs.length <= 0) {
                    $.messager.alert('警告', '搜索不到相关节点!');
                } else {
                    $.each(getObjs, function (index, value) {
                        var getObj = value.parent();
                        var id = getObj.attr('id').substring(idpre.length);
                        var node = tree.tree('find', id);
                        selectArray.push(getObj.attr('id'));
                        var nodeElement = $('#' + getObj.attr('id'));
                        nodeElement.addClass('nodeback');
                        while (node != null) {
                            tree.tree('expand', node.target);
                            node = tree.tree('getParent', node.target);
                        }
                    });
                }
    
            });
        });
    script>
    <style>
        .nodeback {
            background-color: red;
        }
    style>
    
    html>
    

    3. easyui.css代码

    .panel {
      overflow: hidden;
      text-align: left;
      margin: 0;
      border: 0;
      -moz-border-radius: 0 0 0 0;
      -webkit-border-radius: 0 0 0 0;
      border-radius: 0 0 0 0;
    }
    .panel-header,
    .panel-body {
      border-width: 1px;
      border-style: solid;
    }
    .panel-header {
      padding: 5px;
      position: relative;
    }
    .panel-title {
      background: url('images/blank.gif') no-repeat;
    }
    .panel-header-noborder {
      border-width: 0 0 1px 0;
    }
    .panel-body {
      overflow: auto;
      border-top-width: 0;
      padding: 0;
    }
    .panel-body-noheader {
      border-top-width: 1px;
    }
    .panel-body-noborder {
      border-width: 0px;
    }
    .panel-with-icon {
      padding-left: 18px;
    }
    .panel-icon,
    .panel-tool {
      position: absolute;
      top: 50%;
      margin-top: -8px;
      height: 16px;
      overflow: hidden;
    }
    .panel-icon {
      left: 5px;
      width: 16px;
    }
    .panel-tool {
      right: 5px;
      width: auto;
    }
    .panel-tool a {
      display: inline-block;
      width: 16px;
      height: 16px;
      opacity: 0.6;
      filter: alpha(opacity=60);
      margin: 0 0 0 2px;
      vertical-align: top;
    }
    .panel-tool a:hover {
      opacity: 1;
      filter: alpha(opacity=100);
      background-color: #eaf2ff;
      -moz-border-radius: 3px 3px 3px 3px;
      -webkit-border-radius: 3px 3px 3px 3px;
      border-radius: 3px 3px 3px 3px;
    }
    .panel-loading {
      padding: 11px 0px 10px 30px;
    }
    .panel-noscroll {
      overflow: hidden;
    }
    .panel-fit,
    .panel-fit body {
      height: 100%;
      margin: 0;
      padding: 0;
      border: 0;
      overflow: hidden;
    }
    .panel-loading {
      background: url('images/loading.gif') no-repeat 10px 10px;
    }
    .panel-tool-close {
      background: url('images/panel_tools.png') no-repeat -16px 0px;
    }
    .panel-tool-min {
      background: url('images/panel_tools.png') no-repeat 0px 0px;
    }
    .panel-tool-max {
      background: url('images/panel_tools.png') no-repeat 0px -16px;
    }
    .panel-tool-restore {
      background: url('images/panel_tools.png') no-repeat -16px -16px;
    }
    .panel-tool-collapse {
      background: url('images/panel_tools.png') no-repeat -32px 0;
    }
    .panel-tool-expand {
      background: url('images/panel_tools.png') no-repeat -32px -16px;
    }
    .panel-header,
    .panel-body {
      border-color: #95B8E7;
    }
    .panel-header {
      background-color: #E0ECFF;
      background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);
      background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);
      background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);
      background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0);
    }
    .panel-body {
      background-color: #ffffff;
      color: #000000;
      font-size: 12px;
    }
    .panel-title {
      font-size: 12px;
      font-weight: bold;
      color: #0E2D5F;
      height: 16px;
      line-height: 16px;
    }
    .accordion {
      overflow: hidden;
      border-width: 1px;
      border-style: solid;
    }
    .accordion .accordion-header {
      border-width: 0 0 1px;
      cursor: pointer;
    }
    .accordion .accordion-body {
      border-width: 0 0 1px;
    }
    .accordion-noborder {
      border-width: 0;
    }
    .accordion-noborder .accordion-header {
      border-width: 0 0 1px;
    }
    .accordion-noborder .accordion-body {
      border-width: 0 0 1px;
    }
    .accordion-collapse {
      background: url('images/accordion_arrows.png') no-repeat 0 0;
    }
    .accordion-expand {
      background: url('images/accordion_arrows.png') no-repeat -16px 0;
    }
    .accordion {
      background: #ffffff;
      border-color: #95B8E7;
    }
    .accordion .accordion-header {
      background: #E0ECFF;
      filter: none;
    }
    .accordion .accordion-header-selected {
      background: #ffe48d;
    }
    .accordion .accordion-header-selected .panel-title {
      color: #000000;
    }
    .window {
      overflow: hidden;
      padding: 5px;
      border-width: 1px;
      border-style: solid;
    }
    .window .window-header {
      background: transparent;
      padding: 0px 0px 6px 0px;
    }
    .window .window-body {
      border-width: 1px;
      border-style: solid;
      border-top-width: 0px;
    }
    .window .window-body-noheader {
      border-top-width: 1px;
    }
    .window .window-header .panel-icon,
    .window .window-header .panel-tool {
      top: 50%;
      margin-top: -11px;
    }
    .window .window-header .panel-icon {
      left: 1px;
    }
    .window .window-header .panel-tool {
      right: 1px;
    }
    .window .window-header .panel-with-icon {
      padding-left: 18px;
    }
    .window-proxy {
      position: absolute;
      overflow: hidden;
    }
    .window-proxy-mask {
      position: absolute;
      filter: alpha(opacity=5);
      opacity: 0.05;
    }
    .window-mask {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      filter: alpha(opacity=40);
      opacity: 0.40;
      font-size: 1px;
      *zoom: 1;
      overflow: hidden;
    }
    .window,
    .window-shadow {
      position: absolute;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .window-shadow {
      background: #ccc;
      -moz-box-shadow: 2px 2px 3px #cccccc;
      -webkit-box-shadow: 2px 2px 3px #cccccc;
      box-shadow: 2px 2px 3px #cccccc;
      filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);
    }
    .window,
    .window .window-body {
      border-color: #95B8E7;
    }
    .window {
      background-color: #E0ECFF;
      background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%);
      background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%);
      background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%);
      background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 20%);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0);
    }
    .window-proxy {
      border: 1px dashed #95B8E7;
    }
    .window-proxy-mask,
    .window-mask {
      background: #ccc;
    }
    .dialog-content {
      overflow: auto;
    }
    .dialog-toolbar {
      padding: 2px 5px;
    }
    .dialog-tool-separator {
      float: left;
      height: 24px;
      border-left: 1px solid #ccc;
      border-right: 1px solid #fff;
      margin: 2px 1px;
    }
    .dialog-button {
      padding: 5px;
      text-align: right;
    }
    .dialog-button .l-btn {
      margin-left: 5px;
    }
    .dialog-toolbar,
    .dialog-button {
      background: #F4F4F4;
    }
    .dialog-toolbar {
      border-bottom: 1px solid #dddddd;
    }
    .dialog-button {
      border-top: 1px solid #dddddd;
    }
    .textbox {
      border: 1px solid #95B8E7;
      vertical-align: middle;
    }
    .combo {
      display: inline-block;
      white-space: nowrap;
      margin: 0;
      padding: 0;
      border-width: 1px;
      border-style: solid;
      overflow: hidden;
      vertical-align: middle;
    }
    .combo .combo-text {
      font-size: 12px;
      border: 0px;
      line-height: 20px;
      height: 20px;
      margin: 0;
      padding: 0px 2px;
      *margin-top: -1px;
      *height: 18px;
      *line-height: 18px;
      _height: 18px;
      _line-height: 18px;
      vertical-align: baseline;
    }
    .combo-arrow {
      width: 18px;
      height: 20px;
      overflow: hidden;
      display: inline-block;
      vertical-align: top;
      cursor: pointer;
      opacity: 0.6;
      filter: alpha(opacity=60);
    }
    .combo-arrow-hover {
      opacity: 1.0;
      filter: alpha(opacity=100);
    }
    .combo-panel {
      overflow: auto;
    }
    .combo-arrow {
      background: url('images/combo_arrow.png') no-repeat center center;
    }
    .combo,
    .combo-panel {
      background-color: #ffffff;
    }
    .combo {
      border-color: #95B8E7;
      background-color: #ffffff;
    }
    .combo-arrow {
      background-color: #E0ECFF;
    }
    .combo-arrow-hover {
      background-color: #eaf2ff;
    }
    .combobox-item,
    .combobox-group {
      font-size: 12px;
      padding: 3px;
      padding-right: 0px;
    }
    .combobox-item-disabled {
      opacity: 0.5;
      filter: alpha(opacity=50);
    }
    .combobox-gitem {
      padding-left: 10px;
    }
    .combobox-group {
      font-weight: bold;
    }
    .combobox-item-hover {
      background-color: #eaf2ff;
      color: #000000;
    }
    .combobox-item-selected {
      background-color: #ffe48d;
      color: #000000;
    }
    .layout {
      position: relative;
      overflow: hidden;
      margin: 0;
      padding: 0;
      z-index: 0;
    }
    .layout-panel {
      position: absolute;
      overflow: hidden;
    }
    .layout-panel-east,
    .layout-panel-west {
      z-index: 2;
    }
    .layout-panel-north,
    .layout-panel-south {
      z-index: 3;
    }
    .layout-expand {
      position: absolute;
      padding: 0px;
      font-size: 1px;
      cursor: pointer;
      z-index: 1;
    }
    .layout-expand .panel-header,
    .layout-expand .panel-body {
      background: transparent;
      filter: none;
      overflow: hidden;
    }
    .layout-expand .panel-header {
      border-bottom-width: 0px;
    }
    .layout-split-proxy-h,
    .layout-split-proxy-v {
      position: absolute;
      font-size: 1px;
      display: none;
      z-index: 5;
    }
    .layout-split-proxy-h {
      width: 5px;
      cursor: e-resize;
    }
    .layout-split-proxy-v {
      height: 5px;
      cursor: n-resize;
    }
    .layout-mask {
      position: absolute;
      background: #fafafa;
      filter: alpha(opacity=10);
      opacity: 0.10;
      z-index: 4;
    }
    .layout-button-up {
      background: url('images/layout_arrows.png') no-repeat -16px -16px;
    }
    .layout-button-down {
      background: url('images/layout_arrows.png') no-repeat -16px 0;
    }
    .layout-button-left {
      background: url('images/layout_arrows.png') no-repeat 0 0;
    }
    .layout-button-right {
      background: url('images/layout_arrows.png') no-repeat 0 -16px;
    }
    .layout-split-proxy-h,
    .layout-split-proxy-v {
      background-color: #aac5e7;
    }
    .layout-split-north {
      border-bottom: 5px solid #E6EEF8;
    }
    .layout-split-south {
      border-top: 5px solid #E6EEF8;
    }
    .layout-split-east {
      border-left: 5px solid #E6EEF8;
    }
    .layout-split-west {
      border-right: 5px solid #E6EEF8;
    }
    .layout-expand {
      background-color: #E0ECFF;
    }
    .layout-expand-over {
      background-color: #E0ECFF;
    }
    .tabs-container {
      overflow: hidden;
    }
    .tabs-header {
      border-width: 1px;
      border-style: solid;
      border-bottom-width: 0;
      position: relative;
      padding: 0;
      padding-top: 2px;
      overflow: hidden;
    }
    .tabs-header-plain {
      border: 0;
      background: transparent;
    }
    .tabs-scroller-left,
    .tabs-scroller-right {
      position: absolute;
      top: auto;
      bottom: 0;
      width: 18px;
      font-size: 1px;
      display: none;
      cursor: pointer;
      border-width: 1px;
      border-style: solid;
    }
    .tabs-scroller-left {
      left: 0;
    }
    .tabs-scroller-right {
      right: 0;
    }
    .tabs-tool {
      position: absolute;
      bottom: 0;
      padding: 1px;
      overflow: hidden;
      border-width: 1px;
      border-style: solid;
    }
    .tabs-header-plain .tabs-tool {
      padding: 0 1px;
    }
    .tabs-wrap {
      position: relative;
      left: 0;
      overflow: hidden;
      width: 100%;
      margin: 0;
      padding: 0;
    }
    .tabs-scrolling {
      margin-left: 18px;
      margin-right: 18px;
    }
    .tabs-disabled {
      opacity: 0.3;
      filter: alpha(opacity=30);
    }
    .tabs {
      list-style-type: none;
      height: 26px;
      margin: 0px;
      padding: 0px;
      padding-left: 4px;
      /*width: 5000px;*/
      border-style: solid;
      border-width: 0 0 1px 0;
    }
    .tabs li {
      float: left;
      display: inline-block;
      margin: 0 4px -1px 0;
      padding: 0;
      position: relative;
      border: 0;
    }
    .tabs li a.tabs-inner {
      display: inline-block;
      text-decoration: none;
      margin: 0;
      padding: 0 10px;
      height: 25px;
      line-height: 25px;
      text-align: center;
      white-space: nowrap;
      border-width: 1px;
      border-style: solid;
      -moz-border-radius: 5px 5px 0 0;
      -webkit-border-radius: 5px 5px 0 0;
      border-radius: 5px 5px 0 0;
    }
    .tabs li.tabs-selected a.tabs-inner {
      font-weight: bold;
      outline: none;
    }
    .tabs li.tabs-selected a:hover.tabs-inner {
      cursor: default;
      pointer: default;
    }
    .tabs li a.tabs-close,
    .tabs-p-tool {
      position: absolute;
      font-size: 1px;
      display: block;
      height: 12px;
      padding: 0;
      top: 50%;
      margin-top: -6px;
      overflow: hidden;
    }
    .tabs li a.tabs-close {
      width: 12px;
      right: 5px;
      opacity: 0.6;
      filter: alpha(opacity=60);
    }
    .tabs-p-tool {
      right: 16px;
    }
    .tabs-p-tool a {
      display: inline-block;
      font-size: 1px;
      width: 12px;
      height: 12px;
      margin: 0;
      opacity: 0.6;
      filter: alpha(opacity=60);
    }
    .tabs li a:hover.tabs-close,
    .tabs-p-tool a:hover {
      opacity: 1;
      filter: alpha(opacity=100);
      cursor: hand;
      cursor: pointer;
    }
    .tabs-with-icon {
      padding-left: 18px;
    }
    .tabs-icon {
      position: absolute;
      width: 16px;
      height: 16px;
      left: 10px;
      top: 50%;
      margin-top: -8px;
    }
    .tabs-title {
      font-size: 12px;
    }
    .tabs-closable {
      padding-right: 8px;
    }
    .tabs-panels {
      margin: 0px;
      padding: 0px;
      border-width: 1px;
      border-style: solid;
      border-top-width: 0;
      overflow: hidden;
    }
    .tabs-header-bottom {
      border-width: 0 1px 1px 1px;
      padding: 0 0 2px 0;
    }
    .tabs-header-bottom .tabs {
      border-width: 1px 0 0 0;
    }
    .tabs-header-bottom .tabs li {
      margin: -1px 4px 0 0;
    }
    .tabs-header-bottom .tabs li a.tabs-inner {
      -moz-border-radius: 0 0 5px 5px;
      -webkit-border-radius: 0 0 5px 5px;
      border-radius: 0 0 5px 5px;
    }
    .tabs-header-bottom .tabs-tool {
      top: 0;
    }
    .tabs-header-bottom .tabs-scroller-left,
    .tabs-header-bottom .tabs-scroller-right {
      top: 0;
      bottom: auto;
    }
    .tabs-panels-top {
      border-width: 1px 1px 0 1px;
    }
    .tabs-header-left {
      float: left;
      border-width: 1px 0 1px 1px;
      padding: 0;
    }
    .tabs-header-right {
      float: right;
      border-width: 1px 1px 1px 0;
      padding: 0;
    }
    .tabs-header-left .tabs-wrap,
    .tabs-header-right .tabs-wrap {
      height: 100%;
    }
    .tabs-header-left .tabs {
      height: 100%;
      padding: 4px 0 0 4px;
      border-width: 0 1px 0 0;
    }
    .tabs-header-right .tabs {
      height: 100%;
      padding: 4px 4px 0 0;
      border-width: 0 0 0 1px;
    }
    .tabs-header-left .tabs li,
    .tabs-header-right .tabs li {
      display: block;
      width: 100%;
      position: relative;
    }
    .tabs-header-left .tabs li {
      left: auto;
      right: 0;
      margin: 0 -1px 4px 0;
      float: right;
    }
    .tabs-header-right .tabs li {
      left: 0;
      right: auto;
      margin: 0 0 4px -1px;
      float: left;
    }
    .tabs-header-left .tabs li a.tabs-inner {
      display: block;
      text-align: left;
      -moz-border-radius: 5px 0 0 5px;
      -webkit-border-radius: 5px 0 0 5px;
      border-radius: 5px 0 0 5px;
    }
    .tabs-header-right .tabs li a.tabs-inner {
      display: block;
      text-align: left;
      -moz-border-radius: 0 5px 5px 0;
      -webkit-border-radius: 0 5px 5px 0;
      border-radius: 0 5px 5px 0;
    }
    .tabs-panels-right {
      float: right;
      border-width: 1px 1px 1px 0;
    }
    .tabs-panels-left {
      float: left;
      border-width: 1px 0 1px 1px;
    }
    .tabs-header-noborder,
    .tabs-panels-noborder {
      border: 0px;
    }
    .tabs-header-plain {
      border: 0px;
      background: transparent;
    }
    .tabs-scroller-left {
      background: #E0ECFF url('images/tabs_icons.png') no-repeat 1px center;
    }
    .tabs-scroller-right {
      background: #E0ECFF url('images/tabs_icons.png') no-repeat -15px center;
    }
    .tabs li a.tabs-close {
      background: url('images/tabs_icons.png') no-repeat -34px center;
    }
    .tabs li a.tabs-inner:hover {
      background: #eaf2ff;
      color: #000000;
      filter: none;
    }
    .tabs li.tabs-selected a.tabs-inner {
      background-color: #ffffff;
      color: #0E2D5F;
      background: -webkit-linear-gradient(top,#EFF5FF 0,#ffffff 100%);
      background: -moz-linear-gradient(top,#EFF5FF 0,#ffffff 100%);
      background: -o-linear-gradient(top,#EFF5FF 0,#ffffff 100%);
      background: linear-gradient(to bottom,#EFF5FF 0,#ffffff 100%);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=0);
    }
    .tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {
      background: -webkit-linear-gradient(top,#ffffff 0,#EFF5FF 100%);
      background: -moz-linear-gradient(top,#ffffff 0,#EFF5FF 100%);
      background: -o-linear-gradient(top,#ffffff 0,#EFF5FF 100%);
      background: linear-gradient(to bottom,#ffffff 0,#EFF5FF 100%);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=0);
    }
    .tabs-header-left .tabs li.tabs-selected a.tabs-inner {
      background: -webkit-linear-gradient(left,#EFF5FF 0,#ffffff 100%);
      background: -moz-linear-gradient(left,#EFF5FF 0,#ffffff 100%);
      background: -o-linear-gradient(left,#EFF5FF 0,#ffffff 100%);
      background: linear-gradient(to right,#EFF5FF 0,#ffffff 100%);
      background-repeat: repeat-y;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=1);
    }
    .tabs-header-right .tabs li.tabs-selected a.tabs-inner {
      background: -webkit-linear-gradient(left,#ffffff 0,#EFF5FF 100%);
      background: -moz-linear-gradient(left,#ffffff 0,#EFF5FF 100%);
      background: -o-linear-gradient(left,#ffffff 0,#EFF5FF 100%);
      background: linear-gradient(to right,#ffffff 0,#EFF5FF 100%);
      background-repeat: repeat-y;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=1);
    }
    .tabs li a.tabs-inner {
      color: #0E2D5F;
      background-color: #E0ECFF;
      background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);
      background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);
      background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);
      background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0);
    }
    .tabs-header,
    .tabs-tool {
      background-color: #E0ECFF;
    }
    .tabs-header-plain {
      background: transparent;
    }
    .tabs-header,
    .tabs-scroller-left,
    .tabs-scroller-right,
    .tabs-tool,
    .tabs,
    .tabs-panels,
    .tabs li a.tabs-inner,
    .tabs li.tabs-selected a.tabs-inner,
    .tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,
    .tabs-header-left .tabs li.tabs-selected a.tabs-inner,
    .tabs-header-right .tabs li.tabs-selected a.tabs-inner {
      border-color: #95B8E7;
    }
    .tabs-p-tool a:hover,
    .tabs li a:hover.tabs-close,
    .tabs-scroller-over {
      background-color: #eaf2ff;
    }
    .tabs li.tabs-selected a.tabs-inner {
      border-bottom: 1px solid #ffffff;
    }
    .tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {
      border-top: 1px solid #ffffff;
    }
    .tabs-header-left .tabs li.tabs-selected a.tabs-inner {
      border-right: 1px solid #ffffff;
    }
    .tabs-header-right .tabs li.tabs-selected a.tabs-inner {
      border-left: 1px solid #ffffff;
    }
    .l-btn {
      text-decoration: none;
      display: inline-block;
      margin: 0;
      padding: 0;
      cursor: pointer;
      outline: none;
      text-align: center;
      vertical-align: middle;
    }
    .l-btn-plain {
      border: 0;
      padding: 1px;
    }
    .l-btn-disabled {
      color: #ccc;
      opacity: 0.5;
      filter: alpha(opacity=50);
      cursor: default;
    }
    .l-btn-left {
      display: inline-block;
      position: relative;
      overflow: hidden;
      margin: 0;
      padding: 0;
      vertical-align: top;
    }
    .l-btn-text {
      display: inline-block;
      vertical-align: top;
      width: auto;
      line-height: 24px;
      font-size: 12px;
      padding: 0;
      margin: 0 4px;
    }
    .l-btn-icon {
      display: inline-block;
      width: 16px;
      height: 16px;
      line-height: 16px;
      position: absolute;
      top: 50%;
      margin-top: -8px;
      font-size: 1px;
    }
    .l-btn span span .l-btn-empty {
      display: inline-block;
      margin: 0;
      width: 16px;
      height: 24px;
      font-size: 1px;
      vertical-align: top;
    }
    .l-btn span .l-btn-icon-left {
      padding: 0 0 0 20px;
      background-position: left center;
    }
    .l-btn span .l-btn-icon-right {
      padding: 0 20px 0 0;
      background-position: right center;
    }
    .l-btn-icon-left .l-btn-text {
      margin: 0 4px 0 24px;
    }
    .l-btn-icon-left .l-btn-icon {
      left: 4px;
    }
    .l-btn-icon-right .l-btn-text {
      margin: 0 24px 0 4px;
    }
    .l-btn-icon-right .l-btn-icon {
      right: 4px;
    }
    .l-btn-icon-top .l-btn-text {
      margin: 20px 4px 0 4px;
    }
    .l-btn-icon-top .l-btn-icon {
      top: 4px;
      left: 50%;
      margin: 0 0 0 -8px;
    }
    .l-btn-icon-bottom .l-btn-text {
      margin: 0 4px 20px 4px;
    }
    .l-btn-icon-bottom .l-btn-icon {
      top: auto;
      bottom: 4px;
      left: 50%;
      margin: 0 0 0 -8px;
    }
    .l-btn-left .l-btn-empty {
      margin: 0 4px;
      width: 16px;
    }
    .l-btn-plain:hover {
      padding: 0;
    }
    .l-btn-focus {
      outline: #0000FF dotted thin;
    }
    .l-btn-large .l-btn-text {
      line-height: 40px;
    }
    .l-btn-large .l-btn-icon {
      width: 32px;
      height: 32px;
      line-height: 32px;
      margin-top: -16px;
    }
    .l-btn-large .l-btn-icon-left .l-btn-text {
      margin-left: 40px;
    }
    .l-btn-large .l-btn-icon-right .l-btn-text {
      margin-right: 40px;
    }
    .l-btn-large .l-btn-icon-top .l-btn-text {
      margin-top: 36px;
      line-height: 24px;
      min-width: 32px;
    }
    .l-btn-large .l-btn-icon-top .l-btn-icon {
      margin: 0 0 0 -16px;
    }
    .l-btn-large .l-btn-icon-bottom .l-btn-text {
      margin-bottom: 36px;
      line-height: 24px;
      min-width: 32px;
    }
    .l-btn-large .l-btn-icon-bottom .l-btn-icon {
      margin: 0 0 0 -16px;
    }
    .l-btn-large .l-btn-left .l-btn-empty {
      margin: 0 4px;
      width: 32px;
    }
    .l-btn {
      color: #444;
      background: #fafafa;
      background-repeat: repeat-x;
      border: 1px solid #bbb;
      background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%);
      background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%);
      background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%);
      background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0);
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .l-btn:hover {
      background: #eaf2ff;
      color: #000000;
      border: 1px solid #b7d2ff;
      filter: none;
    }
    .l-btn-plain {
      background: transparent;
      border: 0;
      filter: none;
    }
    .l-btn-plain:hover {
      background: #eaf2ff;
      color: #000000;
      border: 1px solid #b7d2ff;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .l-btn-disabled,
    .l-btn-disabled:hover {
      background: #fafafa;
      color: #444;
      background: -webkit-linear-gradient(top,#ffffff 0,#eeeeee 100%);
      background: -moz-linear-gradient(top,#ffffff 0,#eeeeee 100%);
      background: -o-linear-gradient(top,#ffffff 0,#eeeeee 100%);
      background: linear-gradient(to bottom,#ffffff 0,#eeeeee 100%);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0);
      filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#eeeeee,GradientType=0);
    }
    .l-btn-plain-disabled,
    .l-btn-plain-disabled:hover {
      background: transparent;
      filter: alpha(opacity=50);
    }
    .l-btn-selected,
    .l-btn-selected:hover {
      background: #ddd;
      filter: none;
    }
    .l-btn-plain-selected,
    .l-btn-plain-selected:hover {
      background: #ddd;
    }
    .datagrid .panel-body {
      overflow: hidden;
      position: relative;
    }
    .datagrid-view {
      position: relative;
      overflow: hidden;
    }
    .datagrid-view1,
    .datagrid-view2 {
      position: absolute;
      overflow: hidden;
      top: 0;
    }
    .datagrid-view1 {
      left: 0;
    }
    .datagrid-view2 {
      right: 0;
    }
    .datagrid-mask {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      opacity: 0.3;
      filter: alpha(opacity=30);
      display: none;
    }
    .datagrid-mask-msg {
      position: absolute;
      top: 50%;
      margin-top: -20px;
      padding: 10px 5px 10px 30px;
      width: auto;
      height: 16px;
      border-width: 2px;
      border-style: solid;
      display: none;
    }
    .datagrid-sort-icon {
      padding: 0;
    }
    .datagrid-toolbar {
      height: auto;
      padding: 1px 2px;
      border-width: 0 0 1px 0;
      border-style: solid;
    }
    .datagrid-btn-separator {
      float: left;
      height: 24px;
      border-left: 1px solid #ccc;
      border-right: 1px solid #fff;
      margin: 2px 1px;
    }
    .datagrid .datagrid-pager {
      display: block;
      margin: 0;
      border-width: 1px 0 0 0;
      border-style: solid;
    }
    .datagrid .datagrid-pager-top {
      border-width: 0 0 1px 0;
    }
    .datagrid-header {
      overflow: hidden;
      cursor: default;
      border-width: 0 0 1px 0;
      border-style: solid;
    }
    .datagrid-header-inner {
      float: left;
      width: 10000px;
    }
    .datagrid-header-row,
    .datagrid-row {
      height: 25px;
    }
    .datagrid-header td,
    .datagrid-body td,
    .datagrid-footer td {
      border-width: 0 1px 1px 0;
      border-style: dotted;
      margin: 0;
      padding: 0;
    }
    .datagrid-cell,
    .datagrid-cell-group,
    .datagrid-header-rownumber,
    .datagrid-cell-rownumber {
      margin: 0;
      padding: 0 4px;
      white-space: nowrap;
      word-wrap: normal;
      overflow: hidden;
      height: 18px;
      line-height: 18px;
      font-size: 12px;
    }
    .datagrid-header .datagrid-cell {
      height: auto;
    }
    .datagrid-header .datagrid-cell span {
      font-size: 12px;
    }
    .datagrid-cell-group {
      text-align: center;
    }
    .datagrid-header-rownumber,
    .datagrid-cell-rownumber {
      width: 25px;
      text-align: center;
      margin: 0;
      padding: 0;
    }
    .datagrid-body {
      margin: 0;
      padding: 0;
      overflow: auto;
      zoom: 1;
    }
    .datagrid-view1 .datagrid-body-inner {
      padding-bottom: 20px;
    }
    .datagrid-view1 .datagrid-body {
      overflow: hidden;
    }
    .datagrid-footer {
      overflow: hidden;
    }
    .datagrid-footer-inner {
      border-width: 1px 0 0 0;
      border-style: solid;
      width: 10000px;
      float: left;
    }
    .datagrid-row-editing .datagrid-cell {
      height: auto;
    }
    .datagrid-header-check,
    .datagrid-cell-check {
      padding: 0;
      width: 27px;
      height: 18px;
      font-size: 1px;
      text-align: center;
      overflow: hidden;
    }
    .datagrid-header-check input,
    .datagrid-cell-check input {
      margin: 0;
      padding: 0;
      width: 15px;
      height: 18px;
    }
    .datagrid-resize-proxy {
      position: absolute;
      width: 1px;
      height: 10000px;
      top: 0;
      cursor: e-resize;
      display: none;
    }
    .datagrid-body .datagrid-editable {
      margin: 0;
      padding: 0;
    }
    .datagrid-body .datagrid-editable table {
      width: 100%;
      height: 100%;
    }
    .datagrid-body .datagrid-editable td {
      border: 0;
      margin: 0;
      padding: 0;
    }
    .datagrid-body .datagrid-editable .datagrid-editable-input {
      margin: 0;
      padding: 2px;
      border-width: 1px;
      border-style: solid;
    }
    
    .datagrid-sort-desc .datagrid-sort-icon {
      padding: 0 7px 0 0;
      background: url('images/datagrid_icons.png') no-repeat -16px center;
    }
    .datagrid-sort-asc .datagrid-sort-icon {
      padding: 0 7px 0 0;
      background: url('images/datagrid_icons.png') no-repeat 0px center;
    }
    
    .datagrid-row-collapse {
      background: url('images/datagrid_icons.png') no-repeat -48px center;
    }
    .datagrid-row-expand {
      background: url('images/datagrid_icons.png') no-repeat -32px center;
    }
    .datagrid-mask-msg {
      background: #ffffff url('images/loading.gif') no-repeat scroll 5px center;
    }
    .datagrid-header,
    .datagrid-td-rownumber {
      background-color: #efefef;
      background: -webkit-linear-gradient(top,#F9F9F9 0,#efefef 100%);
      background: -moz-linear-gradient(top,#F9F9F9 0,#efefef 100%);
      background: -o-linear-gradient(top,#F9F9F9 0,#efefef 100%);
      background: linear-gradient(to bottom,#F9F9F9 0,#efefef 100%);
      background-repeat: repeat-x;
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F9F9F9,endColorstr=#efefef,GradientType=0);
    }
    .datagrid-cell-rownumber {
      color: #000000;
    }
    .datagrid-resize-proxy {
      background: #aac5e7;
    }
    .datagrid-mask {
      background: #ccc;
    }
    .datagrid-mask-msg {
      border-color: #95B8E7;
    }
    .datagrid-toolbar,
    .datagrid-pager {
      background: #F4F4F4;
    }
    .datagrid-header,
    .datagrid-toolbar,
    .datagrid-pager,
    .datagrid-footer-inner {
      border-color: #dddddd;
    }
    .datagrid-header td,
    .datagrid-body td,
    .datagrid-footer td {
      border-color: #ccc;
    }
    .datagrid-htable,
    .datagrid-btable,
    .datagrid-ftable {
      color: #000000;
      border-collapse: separate;
    }
    .datagrid-row-alt {
      background: #fafafa;
    }
    .datagrid-row-over,
    .datagrid-header td.datagrid-header-over {
      background: #eaf2ff;
      color: #000000;
      cursor: default;
    }
    .datagrid-row-selected {
      background: #ffe48d;
      color: #000000;
    }
    .datagrid-body .datagrid-editable .datagrid-editable-input {
      border-color: #95B8E7;
    }
    .propertygrid .datagrid-view1 .datagrid-body td {
      padding-bottom: 1px;
      border-width: 0 1px 0 0;
    }
    .propertygrid .datagrid-group {
      height: 21px;
      overflow: hidden;
      border-width: 0 0 1px 0;
      border-style: solid;
    }
    .propertygrid .datagrid-group span {
      font-weight: bold;
    }
    .propertygrid .datagrid-view1 .datagrid-body td {
      border-color: #dddddd;
    }
    .propertygrid .datagrid-view1 .datagrid-group {
      border-color: #E0ECFF;
    }
    .propertygrid .datagrid-view2 .datagrid-group {
      border-color: #dddddd;
    }
    .propertygrid .datagrid-group,
    .propertygrid .datagrid-view1 .datagrid-body,
    .propertygrid .datagrid-view1 .datagrid-row-over,
    .propertygrid .datagrid-view1 .datagrid-row-selected {
      background: #E0ECFF;
    }
    .pagination {
      zoom: 1;
    }
    .pagination table {
      float: left;
      height: 30px;
    }
    .pagination td {
      border: 0;
    }
    .pagination-btn-separator {
      float: left;
      height: 24px;
      border-left: 1px solid #ccc;
      border-right: 1px solid #fff;
      margin: 3px 1px;
    }
    .pagination .pagination-num {
      border-width: 1px;
      border-style: solid;
      margin: 0 2px;
      padding: 2px;
      width: 2em;
      height: auto;
    }
    .pagination-page-list {
      margin: 0px 6px;
      padding: 1px 2px;
      width: auto;
      height: auto;
      border-width: 1px;
      border-style: solid;
    }
    .pagination-info {
      float: right;
      margin: 0 6px 0 0;
      padding: 0;
      height: 30px;
      line-height: 30px;
      font-size: 12px;
    }
    .pagination span {
      font-size: 12px;
    }
    .pagination-link .l-btn-text {
      width: 24px;
      text-align: center;
      margin: 0;
    }
    .pagination-first {
      background: url('images/pagination_icons.png') no-repeat 0 center;
    }
    .pagination-prev {
      background: url('images/pagination_icons.png') no-repeat -16px center;
    }
    .pagination-next {
      background: url('images/pagination_icons.png') no-repeat -32px center;
    }
    .pagination-last {
      background: url('images/pagination_icons.png') no-repeat -48px center;
    }
    .pagination-load {
      background: url('images/pagination_icons.png') no-repeat -64px center;
    }
    .pagination-loading {
      background: url('images/loading.gif') no-repeat center center;
    }
    .pagination-page-list,
    .pagination .pagination-num {
      border-color: #95B8E7;
    }
    .calendar {
      border-width: 1px;
      border-style: solid;
      padding: 1px;
      overflow: hidden;
    }
    .calendar table {
      table-layout: fixed;
      border-collapse: separate;
      font-size: 12px;
      width: 100%;
      height: 100%;
    }
    .calendar table td,
    .calendar table th {
      font-size: 12px;
    }
    .calendar-noborder {
      border: 0;
    }
    .calendar-header {
      position: relative;
      height: 22px;
    }
    .calendar-title {
      text-align: center;
      height: 22px;
    }
    .calendar-title span {
      position: relative;
      display: inline-block;
      top: 2px;
      padding: 0 3px;
      height: 18px;
      line-height: 18px;
      font-size: 12px;
      cursor: pointer;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .calendar-prevmonth,
    .calendar-nextmonth,
    .calendar-prevyear,
    .calendar-nextyear {
      position: absolute;
      top: 50%;
      margin-top: -7px;
      width: 14px;
      height: 14px;
      cursor: pointer;
      font-size: 1px;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .calendar-prevmonth {
      left: 20px;
      background: url('images/calendar_arrows.png') no-repeat -18px -2px;
    }
    .calendar-nextmonth {
      right: 20px;
      background: url('images/calendar_arrows.png') no-repeat -34px -2px;
    }
    .calendar-prevyear {
      left: 3px;
      background: url('images/calendar_arrows.png') no-repeat -1px -2px;
    }
    .calendar-nextyear {
      right: 3px;
      background: url('images/calendar_arrows.png') no-repeat -49px -2px;
    }
    .calendar-body {
      position: relative;
    }
    .calendar-body th,
    .calendar-body td {
      text-align: center;
    }
    .calendar-day {
      border: 0;
      padding: 1px;
      cursor: pointer;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .calendar-other-month {
      opacity: 0.3;
      filter: alpha(opacity=30);
    }
    .calendar-disabled {
      opacity: 0.6;
      filter: alpha(opacity=60);
      cursor: default;
    }
    .calendar-menu {
      position: absolute;
      top: 0;
      left: 0;
      width: 180px;
      height: 150px;
      padding: 5px;
      font-size: 12px;
      display: none;
      overflow: hidden;
    }
    .calendar-menu-year-inner {
      text-align: center;
      padding-bottom: 5px;
    }
    .calendar-menu-year {
      width: 40px;
      text-align: center;
      border-width: 1px;
      border-style: solid;
      margin: 0;
      padding: 2px;
      font-weight: bold;
      font-size: 12px;
    }
    .calendar-menu-prev,
    .calendar-menu-next {
      display: inline-block;
      width: 21px;
      height: 21px;
      vertical-align: top;
      cursor: pointer;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .calendar-menu-prev {
      margin-right: 10px;
      background: url('images/calendar_arrows.png') no-repeat 2px 2px;
    }
    .calendar-menu-next {
      margin-left: 10px;
      background: url('images/calendar_arrows.png') no-repeat -45px 2px;
    }
    .calendar-menu-month {
      text-align: center;
      cursor: pointer;
      font-weight: bold;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .calendar-body th,
    .calendar-menu-month {
      color: #4d4d4d;
    }
    .calendar-day {
      color: #000000;
    }
    .calendar-sunday {
      color: #CC2222;
    }
    .calendar-saturday {
      color: #00ee00;
    }
    .calendar-today {
      color: #0000ff;
    }
    .calendar-menu-year {
      border-color: #95B8E7;
    }
    .calendar {
      border-color: #95B8E7;
    }
    .calendar-header {
      background: #E0ECFF;
    }
    .calendar-body,
    .calendar-menu {
      background: #ffffff;
    }
    .calendar-body th {
      background: #F4F4F4;
      padding: 2px 0;
    }
    .calendar-hover,
    .calendar-nav-hover,
    .calendar-menu-hover {
      background-color: #eaf2ff;
      color: #000000;
    }
    .calendar-hover {
      border: 1px solid #b7d2ff;
      padding: 0;
    }
    .calendar-selected {
      background-color: #ffe48d;
      color: #000000;
      border: 1px solid #ffab3f;
      padding: 0;
    }
    .datebox-calendar-inner {
      height: 180px;
    }
    .datebox-button {
      height: 18px;
      padding: 2px 5px;
      text-align: center;
    }
    .datebox-button a {
      font-size: 12px;
      font-weight: bold;
      text-decoration: none;
      opacity: 0.6;
      filter: alpha(opacity=60);
    }
    .datebox-button a:hover {
      opacity: 1.0;
      filter: alpha(opacity=100);
    }
    .datebox-current,
    .datebox-close {
      float: left;
    }
    .datebox-close {
      float: right;
    }
    .datebox .combo-arrow {
      background-image: url('images/datebox_arrow.png');
      background-position: center center;
    }
    .datebox-button {
      background-color: #F4F4F4;
    }
    .datebox-button a {
      color: #444;
    }
    .numberbox {
      border: 1px solid #95B8E7;
      margin: 0;
      padding: 0 2px;
      vertical-align: middle;
    }
    .spinner {
      display: inline-block;
      white-space: nowrap;
      margin: 0;
      padding: 0;
      border-width: 1px;
      border-style: solid;
      overflow: hidden;
      vertical-align: middle;
    }
    .spinner .spinner-text {
      font-size: 12px;
      border: 0px;
      line-height: 20px;
      height: 20px;
      margin: 0;
      padding: 0 2px;
      *margin-top: -1px;
      *height: 18px;
      *line-height: 18px;
      _height: 18px;
      _line-height: 18px;
      vertical-align: baseline;
    }
    .spinner-arrow {
      display: inline-block;
      overflow: hidden;
      vertical-align: top;
      margin: 0;
      padding: 0;
    }
    .spinner-arrow-up,
    .spinner-arrow-down {
      opacity: 0.6;
      filter: alpha(opacity=60);
      display: block;
      font-size: 1px;
      width: 18px;
      height: 10px;
    }
    .spinner-arrow-hover {
      opacity: 1.0;
      filter: alpha(opacity=100);
    }
    .spinner-arrow-up {
      background: url('images/spinner_arrows.png') no-repeat 1px center;
    }
    .spinner-arrow-down {
      background: url('images/spinner_arrows.png') no-repeat -15px center;
    }
    .spinner {
      border-color: #95B8E7;
    }
    .spinner-arrow {
      background-color: #E0ECFF;
    }
    .spinner-arrow-hover {
      background-color: #eaf2ff;
    }
    .progressbar {
      border-width: 1px;
      border-style: solid;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
      overflow: hidden;
      position: relative;
    }
    .progressbar-text {
      text-align: center;
      position: absolute;
    }
    .progressbar-value {
      position: relative;
      overflow: hidden;
      width: 0;
      -moz-border-radius: 5px 0 0 5px;
      -webkit-border-radius: 5px 0 0 5px;
      border-radius: 5px 0 0 5px;
    }
    .progressbar {
      border-color: #95B8E7;
    }
    .progressbar-text {
      color: #000000;
      font-size: 12px;
    }
    .progressbar-value .progressbar-text {
      background-color: #ffe48d;
      color: #000000;
    }
    .searchbox {
      display: inline-block;
      white-space: nowrap;
      margin: 0;
      padding: 0;
      border-width: 1px;
      border-style: solid;
      overflow: hidden;
      vertical-align: middle;
    }
    .searchbox .searchbox-text {
      font-size: 12px;
      border: 0;
      margin: 0;
      padding: 0 2px;
      *margin-top: -1px;
      vertical-align: top;
    }
    .searchbox .searchbox-prompt {
      font-size: 12px;
      color: #ccc;
    }
    .searchbox-button {
      width: 18px;
      height: 20px;
      overflow: hidden;
      display: inline-block;
      vertical-align: top;
      cursor: pointer;
      opacity: 0.6;
      filter: alpha(opacity=60);
    }
    .searchbox-button-hover {
      opacity: 1.0;
      filter: alpha(opacity=100);
    }
    .searchbox .l-btn-plain {
      border: 0;
      padding: 0;
      vertical-align: top;
      opacity: 0.6;
      filter: alpha(opacity=60);
      -moz-border-radius: 0 0 0 0;
      -webkit-border-radius: 0 0 0 0;
      border-radius: 0 0 0 0;
    }
    .searchbox .l-btn-plain:hover {
      border: 0;
      padding: 0;
      opacity: 1.0;
      filter: alpha(opacity=100);
      -moz-border-radius: 0 0 0 0;
      -webkit-border-radius: 0 0 0 0;
      border-radius: 0 0 0 0;
    }
    .searchbox a.m-btn-plain-active {
      -moz-border-radius: 0 0 0 0;
      -webkit-border-radius: 0 0 0 0;
      border-radius: 0 0 0 0;
    }
    .searchbox-button {
      background: url('images/searchbox_button.png') no-repeat center center;
    }
    .searchbox {
      border-color: #95B8E7;
      background-color: #fff;
    }
    .searchbox .l-btn-plain {
      background: #E0ECFF;
    }
    .searchbox .l-btn-plain-disabled,
    .searchbox .l-btn-plain-disabled:hover {
      opacity: 0.5;
      filter: alpha(opacity=50);
    }
    .slider-disabled {
      opacity: 0.5;
      filter: alpha(opacity=50);
    }
    .slider-h {
      height: 22px;
    }
    .slider-v {
      width: 22px;
    }
    .slider-inner {
      position: relative;
      height: 6px;
      top: 7px;
      border-width: 1px;
      border-style: solid;
      border-radius: 5px;
    }
    .slider-handle {
      position: absolute;
      display: block;
      outline: none;
      width: 20px;
      height: 20px;
      top: -7px;
      margin-left: -10px;
    }
    .slider-tip {
      position: absolute;
      display: inline-block;
      line-height: 12px;
      font-size: 12px;
      white-space: nowrap;
      top: -22px;
    }
    .slider-rule {
      position: relative;
      top: 15px;
    }
    .slider-rule span {
      position: absolute;
      display: inline-block;
      font-size: 0;
      height: 5px;
      border-width: 0 0 0 1px;
      border-style: solid;
    }
    .slider-rulelabel {
      position: relative;
      top: 20px;
    }
    .slider-rulelabel span {
      position: absolute;
      display: inline-block;
      font-size: 12px;
    }
    .slider-v .slider-inner {
      width: 6px;
      left: 7px;
      top: 0;
      float: left;
    }
    .slider-v .slider-handle {
      left: 3px;
      margin-top: -10px;
    }
    .slider-v .slider-tip {
      left: -10px;
      margin-top: -6px;
    }
    .slider-v .slider-rule {
      float: left;
      top: 0;
      left: 16px;
    }
    .slider-v .slider-rule span {
      width: 5px;
      height: 'auto';
      border-left: 0;
      border-width: 1px 0 0 0;
      border-style: solid;
    }
    .slider-v .slider-rulelabel {
      float: left;
      top: 0;
      left: 23px;
    }
    .slider-handle {
      background: url('images/slider_handle.png') no-repeat;
    }
    .slider-inner {
      border-color: #95B8E7;
      background: #E0ECFF;
    }
    .slider-rule span {
      border-color: #95B8E7;
    }
    .slider-rulelabel span {
      color: #000000;
    }
    .menu {
      position: absolute;
      margin: 0;
      padding: 2px;
      border-width: 1px;
      border-style: solid;
      overflow: hidden;
    }
    .menu-item {
      position: relative;
      margin: 0;
      padding: 0;
      overflow: hidden;
      white-space: nowrap;
      cursor: pointer;
      border-width: 1px;
      border-style: solid;
    }
    .menu-text {
      height: 20px;
      line-height: 20px;
      float: left;
      padding-left: 28px;
    }
    .menu-icon {
      position: absolute;
      width: 16px;
      height: 16px;
      left: 2px;
      top: 50%;
      margin-top: -8px;
    }
    .menu-rightarrow {
      position: absolute;
      width: 16px;
      height: 16px;
      right: 0;
      top: 50%;
      margin-top: -8px;
    }
    .menu-line {
      position: absolute;
      left: 26px;
      top: 0;
      height: 2000px;
      font-size: 1px;
    }
    .menu-sep {
      margin: 3px 0px 3px 25px;
      font-size: 1px;
    }
    .menu-active {
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .menu-item-disabled {
      opacity: 0.5;
      filter: alpha(opacity=50);
      cursor: default;
    }
    .menu-text,
    .menu-text span {
      font-size: 12px;
    }
    .menu-shadow {
      position: absolute;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
      background: #ccc;
      -moz-box-shadow: 2px 2px 3px #cccccc;
      -webkit-box-shadow: 2px 2px 3px #cccccc;
      box-shadow: 2px 2px 3px #cccccc;
      filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);
    }
    .menu-rightarrow {
      background: url('images/menu_arrows.png') no-repeat -32px center;
    }
    .menu-line {
      border-left: 1px solid #ccc;
      border-right: 1px solid #fff;
    }
    .menu-sep {
      border-top: 1px solid #ccc;
      border-bottom: 1px solid #fff;
    }
    .menu {
      background-color: #fafafa;
      border-color: #ddd;
      color: #444;
    }
    .menu-content {
      background: #ffffff;
    }
    .menu-item {
      border-color: transparent;
      _border-color: #fafafa;
    }
    .menu-active {
      border-color: #b7d2ff;
      color: #000000;
      background: #eaf2ff;
    }
    .menu-active-disabled {
      border-color: transparent;
      background: transparent;
      color: #444;
    }
    .m-btn-downarrow,
    .s-btn-downarrow {
      display: inline-block;
      position: absolute;
      width: 16px;
      height: 16px;
      font-size: 1px;
      right: 0;
      top: 50%;
      margin-top: -8px;
    }
    .m-btn-active,
    .s-btn-active {
      background: #eaf2ff;
      color: #000000;
      border: 1px solid #b7d2ff;
      filter: none;
    }
    .m-btn-plain-active,
    .s-btn-plain-active {
      background: transparent;
      padding: 0;
      border-width: 1px;
      border-style: solid;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .m-btn .l-btn-left .l-btn-text {
      margin-right: 20px;
    }
    .m-btn .l-btn-icon-right .l-btn-text {
      margin-right: 40px;
    }
    .m-btn .l-btn-icon-right .l-btn-icon {
      right: 20px;
    }
    .m-btn .l-btn-icon-top .l-btn-text {
      margin-right: 4px;
      margin-bottom: 14px;
    }
    .m-btn .l-btn-icon-bottom .l-btn-text {
      margin-right: 4px;
      margin-bottom: 34px;
    }
    .m-btn .l-btn-icon-bottom .l-btn-icon {
      top: auto;
      bottom: 20px;
    }
    .m-btn .l-btn-icon-top .m-btn-downarrow,
    .m-btn .l-btn-icon-bottom .m-btn-downarrow {
      top: auto;
      bottom: 0px;
      left: 50%;
      margin-left: -8px;
    }
    .m-btn-line {
      display: inline-block;
      position: absolute;
      font-size: 1px;
      display: none;
    }
    .m-btn .l-btn-left .m-btn-line {
      right: 0;
      width: 16px;
      height: 500px;
      border-style: solid;
      border-color: #aac5e7;
      border-width: 0 0 0 1px;
    }
    .m-btn .l-btn-icon-top .m-btn-line,
    .m-btn .l-btn-icon-bottom .m-btn-line {
      left: 0;
      bottom: 0;
      width: 500px;
      height: 16px;
      border-width: 1px 0 0 0;
    }
    .m-btn-large .l-btn-icon-right .l-btn-text {
      margin-right: 56px;
    }
    .m-btn-large .l-btn-icon-bottom .l-btn-text {
      margin-bottom: 50px;
    }
    .m-btn-downarrow,
    .s-btn-downarrow {
      background: url('images/menu_arrows.png') no-repeat 0 center;
    }
    .m-btn-plain-active,
    .s-btn-plain-active {
      border-color: #b7d2ff;
      background-color: #eaf2ff;
      color: #000000;
    }
    .s-btn:hover .m-btn-line,
    .s-btn-active .m-btn-line,
    .s-btn-plain-active .m-btn-line {
      display: inline-block;
    }
    .l-btn:hover .s-btn-downarrow,
    .s-btn-active .s-btn-downarrow,
    .s-btn-plain-active .s-btn-downarrow {
      border-style: solid;
      border-color: #aac5e7;
      border-width: 0 0 0 1px;
    }
    .messager-body {
      padding: 10px;
      overflow: hidden;
    }
    .messager-button {
      text-align: center;
      padding-top: 10px;
    }
    .messager-button .l-btn {
      width: 70px;
    }
    .messager-icon {
      float: left;
      width: 32px;
      height: 32px;
      margin: 0 10px 10px 0;
    }
    .messager-error {
      background: url('images/messager_icons.png') no-repeat scroll -64px 0;
    }
    .messager-info {
      background: url('images/messager_icons.png') no-repeat scroll 0 0;
    }
    .messager-question {
      background: url('images/messager_icons.png') no-repeat scroll -32px 0;
    }
    .messager-warning {
      background: url('images/messager_icons.png') no-repeat scroll -96px 0;
    }
    .messager-progress {
      padding: 10px;
    }
    .messager-p-msg {
      margin-bottom: 5px;
    }
    .messager-body .messager-input {
      width: 100%;
      padding: 1px 0;
      border: 1px solid #95B8E7;
    }
    .tree {
      margin: 0;
      padding: 0;
      list-style-type: none;
    }
    .tree li {
      white-space: nowrap;
    }
    .tree li ul {
      list-style-type: none;
      margin: 0;
      padding: 0;
    }
    .tree-node {
      height: 18px;
      white-space: nowrap;
      cursor: pointer;
    }
    .tree-hit {
      cursor: pointer;
    }
    .tree-expanded,
    .tree-collapsed,
    .tree-folder,
    .tree-file,
    .tree-checkbox,
    .tree-indent {
      display: inline-block;
      width: 16px;
      height: 18px;
      vertical-align: top;
      overflow: hidden;
    }
    .tree-expanded {
      background: url('images/tree_icons.png') no-repeat -18px 0px;
    }
    .tree-expanded-hover {
      background: url('images/tree_icons.png') no-repeat -50px 0px;
    }
    .tree-collapsed {
      background: url('images/tree_icons.png') no-repeat 0px 0px;
    }
    .tree-collapsed-hover {
      background: url('images/tree_icons.png') no-repeat -32px 0px;
    }
    .tree-lines .tree-expanded,
    .tree-lines .tree-root-first .tree-expanded {
      background: url('images/tree_icons.png') no-repeat -144px 0;
    }
    .tree-lines .tree-collapsed,
    .tree-lines .tree-root-first .tree-collapsed {
      background: url('images/tree_icons.png') no-repeat -128px 0;
    }
    .tree-lines .tree-node-last .tree-expanded,
    .tree-lines .tree-root-one .tree-expanded {
      background: url('images/tree_icons.png') no-repeat -80px 0;
    }
    .tree-lines .tree-node-last .tree-collapsed,
    .tree-lines .tree-root-one .tree-collapsed {
      background: url('images/tree_icons.png') no-repeat -64px 0;
    }
    .tree-line {
      background: url('images/tree_icons.png') no-repeat -176px 0;
    }
    .tree-join {
      background: url('images/tree_icons.png') no-repeat -192px 0;
    }
    .tree-joinbottom {
      background: url('images/tree_icons.png') no-repeat -160px 0;
    }
    .tree-folder {
      background: url('images/tree_icons.png') no-repeat -208px 0;
    }
    .tree-folder-open {
      background: url('images/tree_icons.png') no-repeat -224px 0;
    }
    .tree-file {
      background: url('images/tree_icons.png') no-repeat -240px 0;
    }
    .tree-loading {
      background: url('images/loading.gif') no-repeat center center;
    }
    .tree-checkbox0 {
      background: url('images/tree_icons.png') no-repeat -208px -18px;
    }
    .tree-checkbox1 {
      background: url('images/tree_icons.png') no-repeat -224px -18px;
    }
    .tree-checkbox2 {
      background: url('images/tree_icons.png') no-repeat -240px -18px;
    }
    .tree-title {
      font-size: 12px;
      display: inline-block;
      text-decoration: none;
      vertical-align: top;
      white-space: nowrap;
      padding: 0 2px;
      height: 18px;
      line-height: 18px;
    }
    .tree-node-proxy {
      font-size: 12px;
      line-height: 20px;
      padding: 0 2px 0 20px;
      border-width: 1px;
      border-style: solid;
      z-index: 9900000;
    }
    .tree-dnd-icon {
      display: inline-block;
      position: absolute;
      width: 16px;
      height: 18px;
      left: 2px;
      top: 50%;
      margin-top: -9px;
    }
    .tree-dnd-yes {
      background: url('images/tree_icons.png') no-repeat -256px 0;
    }
    .tree-dnd-no {
      background: url('images/tree_icons.png') no-repeat -256px -18px;
    }
    .tree-node-top {
      border-top: 1px dotted red;
    }
    .tree-node-bottom {
      border-bottom: 1px dotted red;
    }
    .tree-node-append .tree-title {
      border: 1px dotted red;
    }
    .tree-editor {
      border: 1px solid #ccc;
      font-size: 12px;
      height: 14px !important;
      height: 18px;
      line-height: 14px;
      padding: 1px 2px;
      width: 80px;
      position: absolute;
      top: 0;
    }
    .tree-node-proxy {
      background-color: #ffffff;
      color: #000000;
      border-color: #95B8E7;
    }
    .tree-node-hover {
      background: #eaf2ff;
      color: #000000;
    }
    .tree-node-selected {
      background: #ffe48d;
      color: #000000;
    }
    .validatebox-invalid {
      background-image: url('images/validatebox_warning.png');
      background-repeat: no-repeat;
      background-position: right center;
      border-color: #ffa8a8;
      background-color: #fff3f3;
      color: #000;
    }
    .tooltip {
      position: absolute;
      display: none;
      z-index: 9900000;
      outline: none;
      opacity: 1;
      filter: alpha(opacity=100);
      padding: 5px;
      border-width: 1px;
      border-style: solid;
      border-radius: 5px;
      -moz-border-radius: 5px 5px 5px 5px;
      -webkit-border-radius: 5px 5px 5px 5px;
      border-radius: 5px 5px 5px 5px;
    }
    .tooltip-content {
      font-size: 12px;
    }
    .tooltip-arrow-outer,
    .tooltip-arrow {
      position: absolute;
      width: 0;
      height: 0;
      line-height: 0;
      font-size: 0;
      border-style: solid;
      border-width: 6px;
      border-color: transparent;
      _border-color: tomato;
      _filter: chroma(color=tomato);
    }
    .tooltip-right .tooltip-arrow-outer {
      left: 0;
      top: 50%;
      margin: -6px 0 0 -13px;
    }
    .tooltip-right .tooltip-arrow {
      left: 0;
      top: 50%;
      margin: -6px 0 0 -12px;
    }
    .tooltip-left .tooltip-arrow-outer {
      right: 0;
      top: 50%;
      margin: -6px -13px 0 0;
    }
    .tooltip-left .tooltip-arrow {
      right: 0;
      top: 50%;
      margin: -6px -12px 0 0;
    }
    .tooltip-top .tooltip-arrow-outer {
      bottom: 0;
      left: 50%;
      margin: 0 0 -13px -6px;
    }
    .tooltip-top .tooltip-arrow {
      bottom: 0;
      left: 50%;
      margin: 0 0 -12px -6px;
    }
    .tooltip-bottom .tooltip-arrow-outer {
      top: 0;
      left: 50%;
      margin: -13px 0 0 -6px;
    }
    .tooltip-bottom .tooltip-arrow {
      top: 0;
      left: 50%;
      margin: -12px 0 0 -6px;
    }
    .tooltip {
      background-color: #ffffff;
      border-color: #95B8E7;
      color: #000000;
    }
    .tooltip-right .tooltip-arrow-outer {
      border-right-color: #95B8E7;
    }
    .tooltip-right .tooltip-arrow {
      border-right-color: #ffffff;
    }
    .tooltip-left .tooltip-arrow-outer {
      border-left-color: #95B8E7;
    }
    .tooltip-left .tooltip-arrow {
      border-left-color: #ffffff;
    }
    .tooltip-top .tooltip-arrow-outer {
      border-top-color: #95B8E7;
    }
    .tooltip-top .tooltip-arrow {
      border-top-color: #ffffff;
    }
    .tooltip-bottom .tooltip-arrow-outer {
      border-bottom-color: #95B8E7;
    }
    .tooltip-bottom .tooltip-arrow {
      border-bottom-color: #ffffff;
    }
    

    4. tree_icons.png

    在/plugins/easyui/themes/default/images添加样式图片
    在这里插入图片描述

    5. jQuery.min.js 使用版本为v2.1.1

    可自行切换其他版本

    6. jquery.easyui.min.js 版本 1.3.6

  • 相关阅读:
    【Educoder数据挖掘实训】异常值检测-3σ法
    高质量实时渲染笔记
    静态搜索iOS动态链接函数的调用位置
    react中点击事件带参数会立即执行
    自然语言处理任务的开发流程
    cvHoughLines2霍夫直线检测函数详解及源码解析
    解锁无限资源:用爬虫玩转石墨文档
    【SICP】引入与教学大纲
    【每日一题】2216.美化数组的最少删除数-2023.11.21
    Python合并两张图片 | 先叠透明度再合并 (附Demo)
  • 原文地址:https://blog.csdn.net/New_hl/article/details/139614060