├── test.txt ├── my97 ├── skin │ ├── datePicker.gif │ ├── default │ │ ├── img.gif │ │ └── datepicker.css │ ├── whyGreen │ │ ├── bg.jpg │ │ ├── img.gif │ │ └── datepicker.css │ └── WdatePicker.css └── lang │ ├── en.js │ ├── zh-cn.js │ └── zh-tw.js ├── extend ├── themes │ ├── images │ │ ├── tree │ │ │ ├── move_up.png │ │ │ ├── move_down.png │ │ │ ├── toggle_collapse.png │ │ │ └── toggle_expand.png │ │ ├── datagrid │ │ │ ├── lock.png │ │ │ ├── checked.gif │ │ │ ├── columns.gif │ │ │ ├── reload_2.png │ │ │ ├── reload_3.png │ │ │ ├── reload_4.png │ │ │ ├── hmenu-asc.gif │ │ │ ├── hmenu-desc.gif │ │ │ ├── lock-unlock.png │ │ │ ├── table-excel.png │ │ │ ├── unchecked.gif │ │ │ ├── export_excel.png │ │ │ └── table_export.png │ │ └── application_form.png │ ├── easyui.extend.css │ └── icon.css ├── other.js ├── jquery.easyui.combogrid.extend.js ├── jquery.easyui.combotree.extend.js ├── jquery.easyui.mask.extend.js ├── jquery.json-2.4.min.js ├── jquery.easyui.patch.js ├── jquery.easyui.validatebox.extend.js ├── jquery.easyui.toolbar.extend.js └── jquery.easyui.menu.extend.js ├── demo_ext ├── tabs │ ├── _content3.html │ ├── _content4.html │ ├── dispatch.jsp │ ├── _content5.html │ ├── basic.html │ └── mask.html ├── toolbar │ ├── toolbar_data.json │ ├── complextoolbar.html │ └── basic.html ├── datagrid │ ├── datagrid_data3.json │ ├── datagrid_data4.json │ ├── datagrid_data1.json │ ├── datagrid_data2.json │ ├── fixnodata.html │ ├── headercontextmenu.html │ ├── tooltip.html │ └── rowcontextmenu.html ├── window │ ├── dispatch.jsp │ ├── _content.html │ ├── datagrid_data1.json │ ├── _content3.html │ ├── _content2.html │ ├── iframe_mask.html │ ├── dialog_basic.html │ └── basic.html ├── combobox │ ├── combobox_data1.json │ └── combobox_data2.json ├── combo │ ├── combobox_data1.json │ ├── autocomplete.html │ └── basic.html ├── treegrid │ ├── treegrid_data2.json │ ├── basic.html │ ├── treegrid_data1.json │ ├── expand2.html │ ├── expand1.html │ ├── contextmenu.html │ ├── headercontextmenu.html │ ├── rowtooltip.html │ ├── simpledata.html │ ├── celltooltip.html │ └── rowediting.html ├── tree │ ├── tree_data1.json │ ├── tree_data2.json │ ├── expand2.html │ ├── expand1.html │ ├── onlynodeexpand.html │ ├── basic.html │ ├── contextmenu.html │ ├── simpledata.html │ ├── expand3.html │ ├── load_data2.html │ └── custommenu.html ├── combotree │ ├── tree_data1.json │ ├── simpledata.html │ └── load_data.html ├── index.html └── panel │ └── toolbar.html ├── .gitignore ├── README.md ├── change.log ├── syntaxhighlighter └── scripts │ ├── shBrushJScript.js │ └── shBrushXml.js └── datagridview └── datagrid-bufferview.js /test.txt: -------------------------------------------------------------------------------- 1 | Hello World!! 2 | -------------------------------------------------------------------------------- /my97/skin/datePicker.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/my97/skin/datePicker.gif -------------------------------------------------------------------------------- /my97/skin/default/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/my97/skin/default/img.gif -------------------------------------------------------------------------------- /my97/skin/whyGreen/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/my97/skin/whyGreen/bg.jpg -------------------------------------------------------------------------------- /my97/skin/whyGreen/img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/my97/skin/whyGreen/img.gif -------------------------------------------------------------------------------- /extend/themes/images/tree/move_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/tree/move_up.png -------------------------------------------------------------------------------- /extend/themes/images/datagrid/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/lock.png -------------------------------------------------------------------------------- /extend/themes/images/tree/move_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/tree/move_down.png -------------------------------------------------------------------------------- /extend/themes/images/application_form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/application_form.png -------------------------------------------------------------------------------- /extend/themes/images/datagrid/checked.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/checked.gif -------------------------------------------------------------------------------- /extend/themes/images/datagrid/columns.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/columns.gif -------------------------------------------------------------------------------- /extend/themes/images/datagrid/reload_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/reload_2.png -------------------------------------------------------------------------------- /extend/themes/images/datagrid/reload_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/reload_3.png -------------------------------------------------------------------------------- /extend/themes/images/datagrid/reload_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/reload_4.png -------------------------------------------------------------------------------- /extend/themes/images/datagrid/hmenu-asc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/hmenu-asc.gif -------------------------------------------------------------------------------- /extend/themes/images/datagrid/hmenu-desc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/hmenu-desc.gif -------------------------------------------------------------------------------- /extend/themes/images/datagrid/lock-unlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/lock-unlock.png -------------------------------------------------------------------------------- /extend/themes/images/datagrid/table-excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/table-excel.png -------------------------------------------------------------------------------- /extend/themes/images/datagrid/unchecked.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/unchecked.gif -------------------------------------------------------------------------------- /extend/themes/images/tree/toggle_collapse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/tree/toggle_collapse.png -------------------------------------------------------------------------------- /extend/themes/images/tree/toggle_expand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/tree/toggle_expand.png -------------------------------------------------------------------------------- /extend/themes/images/datagrid/export_excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/export_excel.png -------------------------------------------------------------------------------- /extend/themes/images/datagrid/table_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loafer/jQuery.easyui-extend/HEAD/extend/themes/images/datagrid/table_export.png -------------------------------------------------------------------------------- /demo_ext/tabs/_content3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

我是通过href加载的.

9 | 10 | -------------------------------------------------------------------------------- /my97/skin/WdatePicker.css: -------------------------------------------------------------------------------- 1 | .Wdate{ 2 | border:#999 1px solid; 3 | height:20px; 4 | background:#fff url(datePicker.gif) no-repeat right; 5 | } 6 | 7 | .WdateFmtErr{ 8 | font-weight:bold; 9 | color:red; 10 | } -------------------------------------------------------------------------------- /demo_ext/tabs/_content4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

我是通过content内容为"url:"形式加载的.

9 | 10 | -------------------------------------------------------------------------------- /demo_ext/toolbar/toolbar_data.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "text": "Edit", 3 | "iconCls": "icon-edit", 4 | "handler": "doSave" 5 | },{ 6 | "text": "-" 7 | },{ 8 | "text": "Help", 9 | "iconCls": "icon-help", 10 | "disabled": true, 11 | "handler": "doAdd" 12 | }] -------------------------------------------------------------------------------- /demo_ext/datagrid/datagrid_data3.json: -------------------------------------------------------------------------------- 1 | {"total": 3, "rows":[ 2 | {"grade": "三年级","class_name": "一班", "teacher": "Male", "total": 4}, 3 | {"grade": "三年级","class_name": "二班", "teacher": "Tom", "total": 4}, 4 | {"grade": "三年级","class_name": "三班", "teacher": "Jone", "total": 4} 5 | ]} -------------------------------------------------------------------------------- /extend/themes/easyui.extend.css: -------------------------------------------------------------------------------- 1 | .datagrid-row-selected-extend{ 2 | border: 2px solid #ddd; 3 | } 4 | 5 | .combo-item{ 6 | padding: 2px; 7 | font-size: 12px; 8 | padding: 3px; 9 | padding-right: 0px; 10 | } 11 | 12 | .combo-item-hover { 13 | background-color: #e6e6e6; 14 | color: #00438a; 15 | } -------------------------------------------------------------------------------- /demo_ext/tabs/dispatch.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | <% 3 | String path = request.getContextPath(); 4 | String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 | 6 | Thread.sleep(5000); 7 | response.sendRedirect("_content5.html"); 8 | %> 9 | -------------------------------------------------------------------------------- /demo_ext/window/dispatch.jsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 | <% 3 | String path = request.getContextPath(); 4 | String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 | 6 | Thread.sleep(5000); 7 | response.sendRedirect("_content2.html"); 8 | %> 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #忽略jquery.min.js 2 | jquery.min.js 3 | 4 | #忽略index.jsp 5 | index.jsp 6 | 7 | #忽略readme.txt 8 | readme.txt 9 | 10 | #忽略.gitignore 11 | #.gitignore 12 | 13 | jquery.easyui.extend.js 14 | 15 | #忽略demo、locale、plugins、src、themes、tool、WEB-INF目录 16 | demo/ 17 | locale/ 18 | plugins/ 19 | src/ 20 | themes/ 21 | tool/ 22 | WEB-INF/ 23 | 24 | -------------------------------------------------------------------------------- /extend/other.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with IntelliJ IDEA. 3 | * 4 | */ 5 | /** 6 | * 获取元素位置 7 | * @param e dom 8 | * @returns {{left: number, top: number}} 9 | */ 10 | function getElementPosition(e){ 11 | var x= 0, y=0; 12 | while(e!=null){ 13 | x += e.offsetLeft; 14 | y += e.offsetTop; 15 | e = e.offsetParent; 16 | } 17 | return {left: x, top: y}; 18 | } 19 | -------------------------------------------------------------------------------- /extend/jquery.easyui.combogrid.extend.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with IntelliJ IDEA. 3 | * @author: 爱看书不识字 4 | * 5 | * 扩展如下: 6 | * 1、增加方法 getSelected ,直接返回选中item的data值。 7 | */ 8 | (function($){ 9 | 10 | $.extend($.fn.combogrid.methods,{ 11 | getSelected: function(jq){ 12 | return jq.combogrid('grid').datagrid('getSelected'); 13 | } 14 | }); 15 | })(jQuery); 16 | -------------------------------------------------------------------------------- /demo_ext/datagrid/datagrid_data4.json: -------------------------------------------------------------------------------- 1 | {"total": 4, "rows":[ 2 | {"id": "1", "username": "Tom", "sex": "Male", "age": 12, "brithday": "1987-07-10"}, 3 | {"id": "2", "username": "Tom", "sex": "Male", "age": 11, "brithday": "1987-07-10"}, 4 | {"id": "3", "username": "Tom", "sex": "Male", "age": 12, "brithday": "1987-07-10"}, 5 | {"id": "4", "username": "Jack", "sex": "Male", "age": 11, "brithday": "1987-07-10"} 6 | ]} -------------------------------------------------------------------------------- /extend/jquery.easyui.combotree.extend.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with IntelliJ IDEA. 3 | * @author: 爱看书不识字 4 | * 5 | * 扩展如下: 6 | * 1、支持简单数据加载,加载方式参考tree的设置 7 | */ 8 | (function($){ 9 | $.extend($.fn.combotree.methods, { 10 | followCustomHandle: function(jq){ 11 | return jq.each(function(){ 12 | // $(this).combotree('tree').tree('followCustomHandle'); 13 | // $(this).combo('followCustomHandle'); 14 | }); 15 | } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /demo_ext/combobox/combobox_data1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":1, 3 | "text":"Java", 4 | "desc":"Write once, run anywhere" 5 | },{ 6 | "id":2, 7 | "text":"C#", 8 | "desc":"One of the programming languages designed for the Common Language Infrastructure" 9 | },{ 10 | "id":3, 11 | "text":"Ruby", 12 | "desc":"A dynamic, reflective, general-purpose object-oriented programming language" 13 | },{ 14 | "id":4, 15 | "text":"Perl", 16 | "desc":"A high-level, general-purpose, interpreted, dynamic programming language" 17 | },{ 18 | "id":5, 19 | "text":"Basic", 20 | "desc":"A family of general-purpose, high-level programming languages" 21 | }] -------------------------------------------------------------------------------- /demo_ext/tabs/_content5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | 12 | 17 | 18 | 19 |

我是通过useiframe=ture并且content内容为"url:"形式加载的。我被放在了iframe中。

20 |

21 | 22 | -------------------------------------------------------------------------------- /demo_ext/combo/combobox_data1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":1, 3 | "text":"Java", 4 | "desc":"Write once, run anywhere" 5 | },{ 6 | "id":2, 7 | "text":"C#", 8 | "desc":"One of the programming languages designed for the Common Language Infrastructure" 9 | },{ 10 | "id":3, 11 | "text":"Ruby", 12 | "selected":true, 13 | "desc":"A dynamic, reflective, general-purpose object-oriented programming language" 14 | },{ 15 | "id":4, 16 | "text":"Perl", 17 | "desc":"A high-level, general-purpose, interpreted, dynamic programming language" 18 | },{ 19 | "id":5, 20 | "text":"Basic", 21 | "desc":"A family of general-purpose, high-level programming languages" 22 | }] -------------------------------------------------------------------------------- /my97/lang/en.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "Invalid date or the date out of range,redo or not?", 3 | aWeekStr: ["wk", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 4 | aLongWeekStr:["wk","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], 5 | aMonStr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 6 | aLongMonStr: ["January","February","March","April","May","June","July","August","September","October","November","December"], 7 | clearStr: "Clear", 8 | todayStr: "Today", 9 | okStr: "OK", 10 | updateStr: "OK", 11 | timeStr: "Time", 12 | quickStr: "Quick Selection", 13 | err_1: 'MinDate Cannot be bigger than MaxDate!' 14 | } -------------------------------------------------------------------------------- /demo_ext/treegrid/treegrid_data2.json: -------------------------------------------------------------------------------- 1 | {"total":7,"rows":[ 2 | {"id":1,"name":"All Tasks","begin":"3/4/2010","end":"3/20/2010","progress":60,"icon":"icon-ok"}, 3 | {"id":2,"name":"Designing","begin":"3/4/2010","end":"3/10/2010","progress":100,"pid":1,"state":"closed"}, 4 | {"id":21,"name":"Database","persons":2,"begin":"3/4/2010","end":"3/6/2010","progress":100,"pid":2}, 5 | {"id":22,"name":"UML","persons":1,"begin":"3/7/2010","end":"3/8/2010","progress":100,"pid":2, "icon": "icon-add"}, 6 | {"id":23,"name":"Export Document","persons":1,"begin":"3/9/2010","end":"3/10/2010","progress":100,"pid":2}, 7 | {"id":3,"name":"Coding","persons":2,"begin":"3/11/2010","end":"3/18/2010","progress":80}, 8 | {"id":4,"name":"Testing","persons":1,"begin":"3/19/2010","end":"3/20/2010","progress":20, "pid": 4} 9 | ],"footer":[ 10 | {"name":"Total Persons:","persons":7,"iconCls":"icon-sum"} 11 | ]} 12 | -------------------------------------------------------------------------------- /demo_ext/tree/tree_data1.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"id":1,"region":"Wyoming", "_parentId":1}, 3 | {"id":11,"region":"Albin","icon":"icon-add","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, 4 | {"id":22,"region":"Chehalis","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, 5 | {"id":23,"region":"Ellensburg","icon":"icon-ok","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, 6 | {"id":2,"region":"Washington", "_parentId":2}, 7 | {"id":21,"region":"Bellingham","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, 8 | {"id":12,"region":"Canon","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, 9 | {"id":13,"region":"Egbert","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, 10 | {"id":24,"region":"Monroe","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2} 11 | ] -------------------------------------------------------------------------------- /demo_ext/combotree/tree_data1.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"id":1,"region":"Wyoming", "_parentId":1}, 3 | {"id":11,"region":"Albin","icon":"icon-add","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, 4 | {"id":22,"region":"Chehalis","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, 5 | {"id":23,"region":"Ellensburg","icon":"icon-ok","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, 6 | {"id":2,"region":"Washington", "_parentId":2}, 7 | {"id":21,"region":"Bellingham","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2}, 8 | {"id":12,"region":"Canon","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, 9 | {"id":13,"region":"Egbert","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":1}, 10 | {"id":24,"region":"Monroe","f1":2000,"f2":1800,"f3":1903,"f4":2183,"f5":2133,"f6":1923,"f7":2018,"f8":1838,"_parentId":2} 11 | ] -------------------------------------------------------------------------------- /my97/lang/zh-cn.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u8303\u56F4,\u9700\u8981\u64A4\u9500\u5417?", 3 | aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], 4 | aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], 5 | aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], 6 | aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], 7 | clearStr: "\u6E05\u7A7A", 8 | todayStr: "\u4ECA\u5929", 9 | okStr: "\u786E\u5B9A", 10 | updateStr: "\u786E\u5B9A", 11 | timeStr: "\u65F6\u95F4", 12 | quickStr: "\u5FEB\u901F\u9009\u62E9", 13 | err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u65E5\u671F!' 14 | } -------------------------------------------------------------------------------- /my97/lang/zh-tw.js: -------------------------------------------------------------------------------- 1 | var $lang={ 2 | errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u7BC4\u570D,\u9700\u8981\u64A4\u92B7\u55CE?", 3 | aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"], 4 | aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"], 5 | aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"], 6 | aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"], 7 | clearStr: "\u6E05\u7A7A", 8 | todayStr: "\u4ECA\u5929", 9 | okStr: "\u78BA\u5B9A", 10 | updateStr: "\u78BA\u5B9A", 11 | timeStr: "\u6642\u9593", 12 | quickStr: "\u5FEB\u901F\u9078\u64C7", 13 | err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u65BC\u6700\u5927\u65E5\u671F!' 14 | } -------------------------------------------------------------------------------- /demo_ext/window/_content.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 19 | 20 | 21 | 打开窗体(定位到顶层) 22 | 打开窗体(定位到顶层) 23 | 24 | -------------------------------------------------------------------------------- /demo_ext/datagrid/datagrid_data1.json: -------------------------------------------------------------------------------- 1 | {"total":28,"rows":[ 2 | {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, 3 | {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, 4 | {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, 5 | {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, 6 | {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, 7 | {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, 8 | {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, 9 | {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, 10 | {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, 11 | {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} 12 | ]} 13 | -------------------------------------------------------------------------------- /demo_ext/window/datagrid_data1.json: -------------------------------------------------------------------------------- 1 | {"total":28,"rows":[ 2 | {"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"}, 3 | {"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, 4 | {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"}, 5 | {"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"}, 6 | {"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"}, 7 | {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"}, 8 | {"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"}, 9 | {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"}, 10 | {"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"}, 11 | {"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"} 12 | ]} 13 | -------------------------------------------------------------------------------- /demo_ext/combo/autocomplete.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Combo - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /demo_ext/tabs/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 20 |
21 |
22 | Content 23 |
24 |
load...
25 |
26 |
27 | 28 | -------------------------------------------------------------------------------- /demo_ext/tree/tree_data2.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":1, 3 | "text":"My Documents", 4 | "children":[{ 5 | "id":11, 6 | "text":"Photos", 7 | "state":"closed", 8 | "children":[{ 9 | "id":111, 10 | "text":"Friend", 11 | "state":"closed", 12 | "children":[{ 13 | "id": "tom", 14 | "text": "Tom" 15 | },{ 16 | "id":"jery", 17 | "text": "Jery" 18 | }] 19 | },{ 20 | "id":112, 21 | "text":"Wife" 22 | },{ 23 | "id":113, 24 | "text":"Company" 25 | }] 26 | },{ 27 | "id":12, 28 | "text":"Program Files", 29 | "state":"closed", 30 | "children":[{ 31 | "id":121, 32 | "text":"Intel" 33 | },{ 34 | "id":122, 35 | "text":"Java" 36 | },{ 37 | "id":123, 38 | "text":"Microsoft Office" 39 | },{ 40 | "id":124, 41 | "text":"Games" 42 | }] 43 | },{ 44 | "id":16, 45 | "text":"Actions", 46 | "state":"closed", 47 | "children":[{ 48 | "id":"add", 49 | "text":"Add", 50 | "iconCls":"icon-add" 51 | },{ 52 | "text":"Remove", 53 | "iconCls":"icon-remove" 54 | },{ 55 | "text":"Save", 56 | "iconCls":"icon-save" 57 | },{ 58 | "text":"Search", 59 | "iconCls":"icon-search" 60 | }] 61 | },{ 62 | "id":13, 63 | "text":"index.html" 64 | },{ 65 | "id":14, 66 | "text":"about.html" 67 | },{ 68 | "id":15, 69 | "text":"welcome.html" 70 | }] 71 | }] 72 | -------------------------------------------------------------------------------- /demo_ext/treegrid/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Treegrid - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 28 | 29 | 30 |
31 | 32 | -------------------------------------------------------------------------------- /demo_ext/treegrid/treegrid_data1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":1, 3 | "name":"C", 4 | "size":"", 5 | "date":"02/19/2010", 6 | "children":[{ 7 | "id":2, 8 | "name":"Program Files", 9 | "size":"120 MB", 10 | "date":"03/20/2010", 11 | "children":[{ 12 | "id":21, 13 | "name":"Java", 14 | "size":"", 15 | "date":"01/13/2010", 16 | "state":"closed", 17 | "children":[{ 18 | "id":211, 19 | "name":"java.exe", 20 | "size":"142 KB", 21 | "date":"01/13/2010" 22 | },{ 23 | "id":212, 24 | "name":"jawt.dll", 25 | "size":"5 KB", 26 | "date":"01/13/2010" 27 | }] 28 | },{ 29 | "id":22, 30 | "name":"MySQL", 31 | "size":"", 32 | "date":"01/13/2010", 33 | "state":"closed", 34 | "children":[{ 35 | "id":221, 36 | "name":"my.ini", 37 | "size":"10 KB", 38 | "date":"02/26/2009" 39 | },{ 40 | "id":222, 41 | "name":"my-huge.ini", 42 | "size":"5 KB", 43 | "date":"02/26/2009" 44 | },{ 45 | "id":223, 46 | "name":"my-large.ini", 47 | "size":"5 KB", 48 | "date":"02/26/2009" 49 | }] 50 | }] 51 | },{ 52 | "id":3, 53 | "name":"eclipse", 54 | "size":"", 55 | "date":"01/20/2010", 56 | "children":[{ 57 | "id":31, 58 | "name":"eclipse.exe", 59 | "size":"56 KB", 60 | "date":"05/19/2009" 61 | },{ 62 | "id":32, 63 | "name":"eclipse.ini", 64 | "size":"1 KB", 65 | "date":"04/20/2010" 66 | },{ 67 | "id":33, 68 | "name":"notice.html", 69 | "size":"7 KB", 70 | "date":"03/17/2005" 71 | }] 72 | }] 73 | }] -------------------------------------------------------------------------------- /demo_ext/window/_content3.html: -------------------------------------------------------------------------------- 1 | 20 | 37 |
38 |

我不是通过iframe加载的window内容。

39 |
40 | 41 | 42 |
43 |
44 | 45 | 46 |
47 |
48 | 49 | 50 |
51 |
52 | 53 | 54 |
55 |
56 | 57 | 58 |
59 |
60 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | jQuery.easyui-extend 2 | ==================== 3 | 一个基于jquery.easyui-1.3.2+的扩展。将一些常用的、需要重复编码的功能,内置到扩展中,并通过扩展属性实现轻松配置,以减少使用者的代码编写量。 4 | 目前已实现扩展的部分组件如下:
5 | 18 | 19 | 快速了解各组件扩展信息,请直接访问在线Demo
20 | 具体了解每个组件的扩展内容及使用方法,请查看extend下相应文件的开头说明。
21 | ~~要使扩展属性生效,必须执行方法followCustomHandle。~~
22 | 23 | 24 |

使用

25 | 首先,在引入jquery.easyui所需要的资源之后,引入如下文件: 26 | ### 27 | 28 | 29 | 30 | 31 | 32 | 然后 33 | 34 | 35 | 36 | ### 37 | $('#cc').combo({ 38 | required: true, 39 | editable: false, 40 | customAttr:{ 41 | headervalue: '--请选择--' 42 | } 43 | }); 44 | 45 | 46 | 47 | 如要查看demo演示,请将所有文件放到jQuery.easyui解压后的根目录中。 48 | 49 | 50 |

更新日志

51 | 关于每次更新内容,请查看change.log文件。 52 | 53 | 54 | 55 |

licenses

56 | GPL licenses 57 | 58 | 59 | 60 |

其他

61 | 62 | 63 | 演示地址:http://loafer.sturgeon.mopaas.com/
64 | Blog:http://blog.csdn.net/zjh527 65 | 66 | 67 |

说明

68 | 69 |
    70 |
  • 71 | jquery.easyui-1.3.3默认使用的是jquery-2.0,这个版本已经不再支持IE6、7、8,如使用这几个IE版本的,请自己将jquery替换到jquery v1的最新版本。演示地址已替换更新为jquery-1.10.1,使用IE 6、7、8的已经能正常访问。 72 |
  • 73 |
  • 74 | 请通过查看 change.log 文件查看每次更新内容。 75 |
  • 76 |
77 |
78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /change.log: -------------------------------------------------------------------------------- 1 | 2016-1-31 更新 2 | 1、使用时不再需要显示调用followCustomHandle方法,即可生效扩展属性。 3 | 2013-9-3 更新 4 | 1、$.showWindow 和 $.showModalDialog 在useiframe=true时,对窗体body增加遮罩控制。 5 | 2、easyui.tabs的add方法当useiframe=true时,增加遮罩控制。 6 | 3、toolbar增加url属性,可以通过请求后台数据构建。 7 | 4、增加mask(遮罩)扩展。 8 | 9 | 2013-8-26 更新 10 | 1、tree增加支持类标准数据格式加载,具体看demo或jquery.easyui.tree.extend.js文件开头说明。 11 | 2、修复datagrid在rowediting编辑风格时点击“确定”按钮无法提交问题。 12 | 3、datagrid和treegrid增加getEditingRows方法,用来获取所有正在编辑的行。 13 | 4、修复tabs.add方法,当useiframe=true时, iframe的高度改为100%。 14 | 5、修复当tabs使用iframe时,右键菜单刷新报错问题。 15 | 6、增加combotree对简单数据格式和类标准数据格式的加载,具体参考jquery.easyui.tree.extend.js文件开头说明。 16 | 7、修复datagrid.onConfirmEdit事件默认实现bug。 17 | 8、增加treegrid.onConfirmEdit事件。 18 | 19 | 20 | 2013-8-12 更新 21 | 1、修复combobox在级联操作时,传递的swd参数值为null,而不是选中值。 22 | 2、datagrid的addEventListener 方法增加对事件onExpandRow和onCollapseRow的控制。 23 | 3、tree增加自定义属性 attributes,用于简单数据加载时,指定那些字段当作node的attributes属性使用。 24 | 4、combobox增加 getSelected 方法, 返回选中item的data值。 25 | 5、combogrid增加 getSelected 方法,返回选中item的data值。 26 | 6、datagrid增加 getAllExpandRowIndex 方法,用于在detailView视图下获取当前页已展开行的索引。 27 | 7、datagrid增加 getExpandRowIndex 方法,用于在detailView视图下获取当前页第一个展开行的索引。 28 | 8、datagrid增加 fixDetailRowWidth 方法,用于detailView视图下修改rowDetial中组件宽度。 29 | 9、getAllExpandRowIndex、getExpandRowIndex、fixDetailRowWidth 这三个方法联合使用可解决detailView视图下列拖拽时显示错位问题。 30 | 10、修复datagrid 的rowEditing编辑风格在没有数据的datagrid中增加数据后,再编辑时无法显示的问题。 31 | 11、datagrid增加自定义事件 onConfirmEdit , 用于rowEditing编辑风格点击“确定”按钮时触发。当事件返回false时终止endEdit方法调用。 32 | 33 | 34 | 2013-7-31 更新 35 | 1、$.showWindow、$.showModalDialog 这两个方法增加返回值,返回值指向当前弹出窗的引用。 36 | 2、移除根据$.browser.msie判断浏览器版本。 37 | 38 | 39 | 2013-7-18 更新 40 | 1、menu、datagrid、combo、combobox、panel、tabs、tree、treegrid 增加 addEventListener 方法。 41 | 2、修复menu、datagrid、combo、combobox、panel、tabs、tree、treegrid 因事件注册造成多次重复渲染的问题(包括多次请求后台数据)。 42 | 3、移除datagrid 的rowContextMenu菜单项默认事件替换功能。 43 | 4、删除datagrid rowContextMenu默认菜单中的增加、编辑、导出菜单项。 44 | -------------------------------------------------------------------------------- /syntaxhighlighter/scripts/shBrushJScript.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | var keywords = 'break case catch continue ' + 25 | 'default delete do else false ' + 26 | 'for function if in instanceof ' + 27 | 'new null return super switch ' + 28 | 'this throw true try typeof var while with' 29 | ; 30 | 31 | var r = SyntaxHighlighter.regexLib; 32 | 33 | this.regexList = [ 34 | { regex: r.multiLineDoubleQuotedString, css: 'string' }, // double quoted strings 35 | { regex: r.multiLineSingleQuotedString, css: 'string' }, // single quoted strings 36 | { regex: r.singleLineCComments, css: 'comments' }, // one line comments 37 | { regex: r.multiLineCComments, css: 'comments' }, // multiline comments 38 | { regex: /\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion 39 | { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // keywords 40 | ]; 41 | 42 | this.forHtmlScript(r.scriptScriptTags); 43 | }; 44 | 45 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 46 | Brush.aliases = ['js', 'jscript', 'javascript']; 47 | 48 | SyntaxHighlighter.brushes.JScript = Brush; 49 | 50 | // CommonJS 51 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 52 | })(); 53 | -------------------------------------------------------------------------------- /extend/themes/icon.css: -------------------------------------------------------------------------------- 1 | .icon-checked{ 2 | background:url('images/datagrid/checked.gif') no-repeat center center; 3 | } 4 | 5 | .icon-unchecked{ 6 | background:url('images/datagrid/unchecked.gif') no-repeat center center; 7 | } 8 | 9 | .icon-hmenu-asc{ 10 | background:url('images/datagrid/hmenu-asc.gif') no-repeat center center; 11 | } 12 | 13 | .icon-hmenu-desc{ 14 | background:url('images/datagrid/hmenu-desc.gif') no-repeat center center; 15 | } 16 | 17 | .icon-columns{ 18 | background:url('images/datagrid/columns.gif') no-repeat center center; 19 | } 20 | 21 | .icon-export-excel{ 22 | background:url('images/datagrid/export_excel.png') no-repeat center center; 23 | } 24 | 25 | .icon-table-excel{ 26 | background:url('images/datagrid/table-excel.png') no-repeat center center; 27 | } 28 | 29 | .icon-table-export{ 30 | background:url('images/datagrid/table_export.png') no-repeat center center; 31 | } 32 | 33 | .icon-reload2{ 34 | background:url('images/datagrid/reload_2.png') no-repeat center center; 35 | } 36 | .icon-reload3{ 37 | background:url('images/datagrid/reload_3.png') no-repeat center center; 38 | } 39 | .icon-reload4{ 40 | background:url('images/datagrid/reload_4.png') no-repeat center center; 41 | } 42 | 43 | .icon-form{ 44 | background:url('images/application_form.png') no-repeat center center; 45 | } 46 | .icon-moveup{ 47 | background:url('images/tree/move_up.png') no-repeat center center; 48 | } 49 | .icon-movedown{ 50 | background:url('images/tree/move_down.png') no-repeat center center; 51 | } 52 | .icon-collapse{ 53 | background:url('images/tree/toggle_collapse.png') no-repeat center center; 54 | } 55 | .icon-expand{ 56 | background:url('images/tree/toggle_expand.png') no-repeat center center; 57 | } 58 | .icon-lock{ 59 | background:url('images/datagrid/lock.png') no-repeat center center; 60 | } 61 | .icon-unlock{ 62 | background:url('images/datagrid/lock-unlock.png') no-repeat center center; 63 | } -------------------------------------------------------------------------------- /extend/jquery.easyui.mask.extend.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with IntelliJ IDEA. 3 | * Created with IntelliJ IDEA. 4 | * Licensed under the GPL licenses 5 | * http://www.gnu.org/licenses/gpl.txt 6 | * @author: 爱看书不识字 7 | * 8 | * 扩展说明: 9 | * 1、maskt 显示遮罩 10 | * 1.1 参数说明 11 | * target: 要加载遮罩的目标对象 12 | * loadMsg: 遮罩显示信息 13 | * 14 | * 15 | * 2、unmask 关闭遮罩 16 | * 2.1 参数说明 17 | * target: 要加载遮罩的目标对象 18 | * 19 | */ 20 | (function($){ 21 | function addCss(id, content){ 22 | if($('#' + id).length > 0) return; 23 | return $('').attr('id', id).attr('type', 'text/css').appendTo('head'); 24 | } 25 | 26 | $.extend({ 27 | mask: function(opts){ 28 | opts = opts || {}; 29 | var options = $.extend({}, {target: 'body', loadMsg: $.fn.datagrid.defaults.loadMsg}, opts); 30 | this.unmask(options); 31 | 32 | if(options.target != 'body' && $(options.target).css('position') == 'static'){ 33 | $(options.target).addClass('mask-relative'); 34 | } 35 | 36 | var mask = $("
").appendTo(options.target); 37 | var msg = $("
").html(options.loadMsg).appendTo(options.target); 38 | setTimeout(function(){ 39 | msg.css("marginLeft", -msg.outerWidth() / 2); 40 | }, 5); 41 | 42 | var css = '.mask-relative {position: relative !important;}'; 43 | addCss('mask_css', css); 44 | }, 45 | unmask: function(options){ 46 | var target = options.target || 'body'; 47 | $(">div.datagrid-mask-msg", target).remove(); 48 | $(">div.datagrid-mask", target).remove(); 49 | $(options.target).removeClass('mask-relative'); 50 | } 51 | }); 52 | })(jQuery); 53 | -------------------------------------------------------------------------------- /demo_ext/combobox/combobox_data2.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "id":"370000", 3 | "text":"山东省", 4 | "data":[{ 5 | "id": "370100", 6 | "text": "济南市", 7 | "data":[{ 8 | "id": "370102", 9 | "text": "历下区" 10 | },{ 11 | "id": "370103", 12 | "text": "市中区" 13 | },{ 14 | "id": "370104", 15 | "text": "槐荫区" 16 | }] 17 | },{ 18 | "id": "370200", 19 | "text": "青岛市", 20 | "data":[{ 21 | "id":"370202", 22 | "text":"市南区" 23 | },{ 24 | "id":"370203", 25 | "text":"市北区" 26 | },{ 27 | "id":"370205", 28 | "text": "四方区" 29 | }] 30 | }] 31 | },{ 32 | "id":"130000", 33 | "text":"河北省", 34 | "data":[{ 35 | "id":"130100", 36 | "text":"石家庄市", 37 | "data":[{ 38 | "id":"130102", 39 | "text":"长安区" 40 | },{ 41 | "id":"130103", 42 | "text":"桥东区" 43 | },{ 44 | "id":"130104", 45 | "text":"桥西区" 46 | }] 47 | },{ 48 | "id":"131000", 49 | "text":"廊坊市", 50 | "data":[{ 51 | "id":"131001", 52 | "text":"市辖区" 53 | },{ 54 | "id":"131002", 55 | "text":"安次区" 56 | }] 57 | }] 58 | },{ 59 | "id":"440000", 60 | "text":"广东省", 61 | "data":[{ 62 | "id":"440100", 63 | "text":"广州市", 64 | "data":[{ 65 | "id":"440103", 66 | "text":"荔湾区" 67 | },{ 68 | "id":"440105", 69 | "text":"海珠区" 70 | },{ 71 | "id":"440106", 72 | "text":"天河区" 73 | }] 74 | },{ 75 | "id":"440300", 76 | "text":"深圳市", 77 | "data":[{ 78 | "id":"440303", 79 | "text":"罗湖区" 80 | },{ 81 | "id":"440304", 82 | "text":"福田区" 83 | },{ 84 | "id":"440305", 85 | "text":"南山区" 86 | }] 87 | }] 88 | }] -------------------------------------------------------------------------------- /syntaxhighlighter/scripts/shBrushXml.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | ;(function() 18 | { 19 | // CommonJS 20 | typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; 21 | 22 | function Brush() 23 | { 24 | function process(match, regexInfo) 25 | { 26 | var constructor = SyntaxHighlighter.Match, 27 | code = match[0], 28 | tag = new XRegExp('(<|<)[\\s\\/\\?]*(?[:\\w-\\.]+)', 'xg').exec(code), 29 | result = [] 30 | ; 31 | 32 | if (match.attributes != null) 33 | { 34 | var attributes, 35 | regex = new XRegExp('(? [\\w:\\-\\.]+)' + 36 | '\\s*=\\s*' + 37 | '(? ".*?"|\'.*?\'|\\w+)', 38 | 'xg'); 39 | 40 | while ((attributes = regex.exec(code)) != null) 41 | { 42 | result.push(new constructor(attributes.name, match.index + attributes.index, 'color1')); 43 | result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string')); 44 | } 45 | } 46 | 47 | if (tag != null) 48 | result.push( 49 | new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword') 50 | ); 51 | 52 | return result; 53 | } 54 | 55 | this.regexList = [ 56 | { regex: new XRegExp('(\\<|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\>|>)', 'gm'), css: 'color2' }, // 57 | { regex: SyntaxHighlighter.regexLib.xmlComments, css: 'comments' }, // 58 | { regex: new XRegExp('(<|<)[\\s\\/\\?]*(\\w+)(?.*?)[\\s\\/\\?]*(>|>)', 'sg'), func: process } 59 | ]; 60 | }; 61 | 62 | Brush.prototype = new SyntaxHighlighter.Highlighter(); 63 | Brush.aliases = ['xml', 'xhtml', 'xslt', 'html']; 64 | 65 | SyntaxHighlighter.brushes.Xml = Brush; 66 | 67 | // CommonJS 68 | typeof(exports) != 'undefined' ? exports.Brush = Brush : null; 69 | })(); 70 | -------------------------------------------------------------------------------- /extend/jquery.json-2.4.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery JSON plugin 2.4.0 | code.google.com/p/jquery-json */ 2 | (function($){'use strict';var escape=/["\\\x00-\x1f\x7f-\x9f]/g,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},hasOwn=Object.prototype.hasOwnProperty;$.toJSON=typeof JSON==='object'&&JSON.stringify?JSON.stringify:function(o){if(o===null){return'null';} 3 | var pairs,k,name,val,type=$.type(o);if(type==='undefined'){return undefined;} 4 | if(type==='number'||type==='boolean'){return String(o);} 5 | if(type==='string'){return $.quoteString(o);} 6 | if(typeof o.toJSON==='function'){return $.toJSON(o.toJSON());} 7 | if(type==='date'){var month=o.getUTCMonth()+1,day=o.getUTCDate(),year=o.getUTCFullYear(),hours=o.getUTCHours(),minutes=o.getUTCMinutes(),seconds=o.getUTCSeconds(),milli=o.getUTCMilliseconds();if(month<10){month='0'+month;} 8 | if(day<10){day='0'+day;} 9 | if(hours<10){hours='0'+hours;} 10 | if(minutes<10){minutes='0'+minutes;} 11 | if(seconds<10){seconds='0'+seconds;} 12 | if(milli<100){milli='0'+milli;} 13 | if(milli<10){milli='0'+milli;} 14 | return'"'+year+'-'+month+'-'+day+'T'+ 15 | hours+':'+minutes+':'+seconds+'.'+milli+'Z"';} 16 | pairs=[];if($.isArray(o)){for(k=0;k 4 | */ 5 | (function($){ 6 | /** 7 | * 8 | * @requires jQuery,EasyUI 9 | * 10 | * 防止panel/window/dialog组件超出浏览器边界 11 | * @param left 12 | * @param top 13 | */ 14 | var easyuiPanelOnMove = function(left, top) { 15 | var l = left; 16 | var t = top; 17 | if (l < 1) { 18 | l = 1; 19 | } 20 | if (t < 1) { 21 | t = 1; 22 | } 23 | var width = parseInt($(this).parent().css('width')) + 14; 24 | var height = parseInt($(this).parent().css('height')) + 14; 25 | var right = l + width; 26 | var buttom = t + height; 27 | var browserWidth = $(window).width(); 28 | var browserHeight = $(window).height(); 29 | if (right > browserWidth) { 30 | l = browserWidth - width; 31 | } 32 | if (buttom > browserHeight) { 33 | t = browserHeight - height; 34 | } 35 | $(this).parent().css({/* 修正面板位置 */ 36 | left : l, 37 | top : t 38 | }); 39 | }; 40 | $.fn.dialog.defaults.onMove = easyuiPanelOnMove; 41 | $.fn.window.defaults.onMove = easyuiPanelOnMove; 42 | $.fn.panel.defaults.onMove = easyuiPanelOnMove; 43 | 44 | 45 | // /** 46 | // * 销毁所有panel下的iframe 47 | // */ 48 | // $.fn.panel.defaults = $.extend({}, 49 | // $.fn.panel.defaults, 50 | // { 51 | // onBeforeDestroy: function(){ 52 | // var frame=$('iframe', this); 53 | // if(frame.length>0){ 54 | // frame[0].contentWindow.document.write(''); 55 | // frame[0].contentWindow.close(); 56 | // frame.remove(); 57 | //// if($.browser.msie){ 58 | //// CollectGarbage(); 59 | //// } 60 | // if(navigator.userAgent.indexOf('MSIE')>0){ 61 | // CollectGarbage(); 62 | // } 63 | // } 64 | // } 65 | // }); 66 | 67 | /** 68 | * 销毁panel和window下的iframe并释放内存 69 | */ 70 | var destroyFrameAndFreeTheMemory = function(){ 71 | var frame=$('iframe', this); 72 | if(frame.length>0){ 73 | frame[0].contentWindow.close(); 74 | frame.remove(); 75 | if(navigator.userAgent.indexOf('MSIE')>0){ 76 | CollectGarbage(); 77 | } 78 | } 79 | } 80 | 81 | $.fn.panel.defaults.onBeforeDestroy = destroyFrameAndFreeTheMemory; 82 | $.fn.window.defaults.onBeforeDestroy = destroyFrameAndFreeTheMemory ; 83 | $.fn.dialog.defaults.onBeforeDestroy = destroyFrameAndFreeTheMemory ; 84 | 85 | })(jQuery); 86 | -------------------------------------------------------------------------------- /demo_ext/window/_content2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 27 | 28 | 56 | 57 | 58 |
59 |

我是一个由iframe加载的页面

60 |
61 | 62 | 63 |
64 |
65 | 66 | 67 |
68 |
69 | 70 | 71 |
72 |
73 | 74 | 75 |
76 |
77 | 78 | 79 |
80 |
81 | 82 | -------------------------------------------------------------------------------- /demo_ext/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 38 | 39 | 40 |
41 |
42 |
43 |
44 |
45 | 展开 46 | 收缩 47 |
48 |
49 |
50 |
    51 |
    52 |
    53 |
    54 |
    55 |
    56 |
    57 | 作者:爱看书不识字 58 |
    59 |
    60 |
    61 | 62 |
    63 | 64 | -------------------------------------------------------------------------------- /demo_ext/window/iframe_mask.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Window - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 36 | 37 | 38 | 39 |
    40 |
    41 |

    遮罩演示

    42 |

    注意此效果只在useiframe=true时起作用

    43 | 44 |
    45 |
    46 |

    javascript:

    47 | 61 | 62 |
    63 |
    64 | 65 | 66 | -------------------------------------------------------------------------------- /demo_ext/tree/expand2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Tree - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
    43 |
    44 |

    双击节点展开/收缩

    45 |
      46 |
      47 |
      48 |

      javascript:

      49 | 60 | 61 |

      html:

      62 | 68 |
      69 |
      70 | 71 | -------------------------------------------------------------------------------- /demo_ext/tree/expand1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Tree - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |
      44 |
      45 |

      点击节点展开/收缩

      46 |
        47 |
        48 |
        49 |

        javascript:

        50 | 61 | 62 |

        html:

        63 | 69 |
        70 |
        71 | 72 | -------------------------------------------------------------------------------- /demo_ext/tree/onlynodeexpand.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
        43 |
        44 |

        同级节点只能展开一个

        45 |
          46 |
          47 |
          48 |

          javascript:

          49 | 61 | 62 |

          html:

          63 | 69 |
          70 |
          71 | 72 | 73 | -------------------------------------------------------------------------------- /demo_ext/combo/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Combo - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
          43 |
          44 |

          Combo headervalue演示

          45 | Combo: 46 |
          47 |
          48 |

          javascript:

          49 | 61 | 62 |

          html:

          63 | 69 |
          70 |
          71 | 72 | -------------------------------------------------------------------------------- /demo_ext/datagrid/fixnodata.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fix Bug -- jQUery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 51 | 52 | 53 |

          列字段个数过多且无数据加载时,列字段显示不全bug修复

          54 |
          55 |
          56 |
          57 |
          58 |
          59 |
          60 |
          61 | 62 | -------------------------------------------------------------------------------- /demo_ext/window/dialog_basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Dialog - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 21 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
          41 |
          42 |

          Dialog 演示

          43 | 44 | 45 |
          46 |
          47 |

          javascript:

          48 | 59 | 60 |

          html:

          61 | 68 |
          69 |
          70 | 71 | -------------------------------------------------------------------------------- /demo_ext/tree/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Tree - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
          52 |
          53 |

          基本演示

          54 | 55 |
            56 |
            57 |
            58 |

            javascript:

            59 | 78 | 79 |

            html:

            80 | 87 |
            88 |
            89 | 90 | -------------------------------------------------------------------------------- /demo_ext/tree/contextmenu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ContextMenu - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
            50 |
            51 |

            右键菜单及节点位置上移、下移和onAfterMove事件演示

            52 |

            请点击右键菜单项[位置上移动]、[位置下移动],查看演示效果

            53 |
              54 |
              55 |
              56 |

              javascript:

              57 | 73 | 74 |

              html:

              75 | 82 |
              83 |
              84 | 85 | -------------------------------------------------------------------------------- /demo_ext/combotree/simpledata.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Simple Data - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 44 | 45 | 46 |
              47 |
              48 |

              简单JSON格式

              49 |

              与tree相同,注意textField、iconField、parentField、attributes属性的演示。

              50 | 51 |
              52 |
              53 |

              javascript:

              54 | 71 | 72 |

              html:

              73 | 78 |
              79 |
              80 | 81 | 82 | -------------------------------------------------------------------------------- /demo_ext/tree/simpledata.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Simple Data - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
              50 |
              51 |

              简单JSON格式

              52 |

              类似ztree简单JSON格式加载方式,注意textField、iconField、parentField、attributes属性的演示。

              53 |
                54 |
                55 |
                56 |

                javascript:

                57 | 74 | 75 |

                html:

                76 | 83 |
                84 |
                85 | 86 | 87 | -------------------------------------------------------------------------------- /demo_ext/toolbar/complextoolbar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
                42 |
                43 |

                复杂Toolbar演示

                44 |
                45 | Add 46 |
                47 | Save 48 |
                49 | 50 |
                51 |
                52 |
                53 |

                javascript:

                54 | 59 | 60 |

                html:

                61 | 75 |
                76 |
                77 | 78 | -------------------------------------------------------------------------------- /demo_ext/treegrid/expand2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Treegrid - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
                49 |
                50 |

                双击节点展开收缩

                51 |

                请双击treeField属性对应的[name]列,查看效果。

                52 |
                53 |
                54 |
                55 |

                javascript:

                56 | 73 | 74 |

                html:

                75 | 82 |
                83 |
                84 | 85 | 86 | -------------------------------------------------------------------------------- /demo_ext/treegrid/expand1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Treegrid - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
                50 |
                51 |

                单击节点展开收缩

                52 |

                请点击treeField属性对应的[name]列,查看效果。

                53 |
                54 |
                55 |
                56 |

                javascript:

                57 | 74 | 75 |

                html:

                76 | 83 |
                84 |
                85 | 86 | 87 | -------------------------------------------------------------------------------- /demo_ext/treegrid/contextmenu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ComtextMenu of Treegrid - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
                51 |
                52 |

                ContextMenu演示

                53 |
                54 |
                55 |
                56 |

                javascript:

                57 | 76 | 77 |

                html:

                78 | 84 |
                85 |
                86 | 87 | 88 | -------------------------------------------------------------------------------- /demo_ext/tabs/mask.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Add Tab - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 52 | 53 | 54 |
                55 |
                56 |

                add方法遮罩演示

                57 |

                此效果只有在add方法参数中useiframe=true时,参数属性showMask、loadMsg才生效

                58 | 59 |
                60 |
                61 |
                62 | tab1 63 |
                64 |
                65 |
                66 |
                67 |

                javascript:

                68 | 87 | 88 |
                89 |
                90 | 91 | -------------------------------------------------------------------------------- /demo_ext/treegrid/headercontextmenu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Header ComtextMenu of Treegrid - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
                50 |
                51 |

                Header ContextMenu 及默认菜单项演示

                52 |
                53 |
                54 |
                55 |

                javascript:

                56 | 76 | 77 |

                html:

                78 | 84 |
                85 |
                86 | 87 | 88 | -------------------------------------------------------------------------------- /demo_ext/treegrid/rowtooltip.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TreeGrid Tooltip -- jQUery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
                52 |
                53 |

                Tooltip显示风格之row

                54 |

                请将鼠标移动到每一行上,查看效果

                55 |
                56 |
                57 |
                58 |

                javascript:

                59 | 79 | 80 |

                html:

                81 | 88 |
                89 |
                90 | 91 | 92 | -------------------------------------------------------------------------------- /demo_ext/treegrid/simpledata.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Simple Data of Treegrid - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
                51 |
                52 |

                简单JSON格式

                53 |

                类似ztree简单JSON格式加载方式

                54 |
                55 |
                56 |
                57 |

                javascript:

                58 | 77 | 78 |

                html:

                79 | 86 |
                87 |
                88 | 89 | 90 | -------------------------------------------------------------------------------- /extend/jquery.easyui.validatebox.extend.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with IntelliJ IDEA. 3 | * Licensed under the GPL licenses 4 | * http://www.gnu.org/licenses/gpl.txt 5 | * @author: 爱看书不识字 6 | * 7 | * 8 | */ 9 | (function($){ 10 | function bindEvent(target){ 11 | var box = $(target); 12 | var state = $.data(target, "validatebox"); 13 | 14 | box.unbind(".validatebox"); 15 | if(state.options.novalidate){ 16 | return; 17 | } 18 | 19 | box.bind("focus.validatebox", function(){ 20 | state.validating = true; 21 | state.value = undefined; 22 | (function(){ 23 | if(state.validating){ 24 | if(state.value != box.val()){ 25 | state.value = box.val(); 26 | if(state.timer){ 27 | clearTimeout(state.timer); 28 | } 29 | state.timer = setTimeout(function(){ 30 | $(target).validatebox("validate"); 31 | },state.options.delay); 32 | }else{ 33 | repositionTip(target); 34 | } 35 | setTimeout(arguments.callee, 200); 36 | } 37 | })(); 38 | }).bind("blur.validatebox",function(){ 39 | if(state.timer){ 40 | clearTimeout(state.timer); 41 | state.timer = undefined; 42 | } 43 | state.validating = false; 44 | hideTip(target); 45 | }).bind("mouseenter.validatebox",function(){ 46 | if(box.hasClass("validatebox-invalid")){ 47 | showTip(target); 48 | } 49 | }).bind("mouseleave.validatebox",function(){ 50 | if(!state.validating){ 51 | hideTip(target); 52 | } 53 | }); 54 | } 55 | 56 | function showTip(target){ 57 | var state = $.data(target,"validatebox"); 58 | var options = state.options; 59 | $(target).tooltip($.extend({}, options.tipOptions, { 60 | content: state.message, 61 | position: options.tipPosition, 62 | deltaX: options.deltaX 63 | })).tooltip("show"); 64 | state.tip=true; 65 | } 66 | 67 | function repositionTip(target){ 68 | var state = $.data(target,"validatebox"); 69 | if(state && state.tip){ 70 | $(target).tooltip("reposition"); 71 | } 72 | } 73 | 74 | function hideTip(target){ 75 | var state = $.data(target,"validatebox"); 76 | state.tip = false; 77 | $(target).tooltip("hide"); 78 | } 79 | 80 | $.extend($.fn.validatebox.defaults.rules, { 81 | unequal: { 82 | validator: function(value, param){ 83 | return value != param; 84 | }, 85 | message: $.fn.validatebox.defaults.missingMessage 86 | } 87 | ,minLength: { 88 | validator: function(value, param){ 89 | return value.length >= param[0]; 90 | } 91 | } 92 | ,equals: { 93 | validator: function(value, param){ 94 | if(/^#/.test(param)){ 95 | return value == $(param).val(); 96 | }else{ 97 | return value == param; 98 | } 99 | } 100 | } 101 | ,english:{ 102 | validator : function(value) { 103 | return /^[A-Za-z]+$/i.test(value); 104 | } 105 | } 106 | ,code: { 107 | validator : function(value) { 108 | return /^[A-Za-z0-9_\-]+$/i.test(value); 109 | } 110 | } 111 | }); 112 | 113 | 114 | if($.fn.validatebox){ 115 | $.fn.validatebox.defaults.rules.minLength.message = '请至少输入{0}个字符。'; 116 | $.fn.validatebox.defaults.rules.equals.message = '字段不匹配'; 117 | $.fn.validatebox.defaults.rules.english.message = '请输入英文字母(大小写不限)'; 118 | $.fn.validatebox.defaults.rules.code.message = '请输入英文字母(大小写不限)、数字、_或-'; 119 | } 120 | 121 | 122 | // $.fn.validatebox.defaults.rules.minLength.message = '请至少输入{0}个字符。'; 123 | // $.fn.validatebox.defaults.rules.equals.message = '字段不匹配'; 124 | // $.fn.validatebox.defaults.rules.english.message = '请输入英文字母(大小写不限)'; 125 | // $.fn.validatebox.defaults.rules.code.message = '请输入英文字母(大小写不限)、数字、_或-'; 126 | })(jQuery); 127 | -------------------------------------------------------------------------------- /extend/jquery.easyui.toolbar.extend.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with IntelliJ IDEA. 3 | * Licensed under the GPL licenses 4 | * http://www.gnu.org/licenses/gpl.txt 5 | * @author: 爱看书不识字 6 | * 7 | * 8 | * 9 | * 扩展说明: 10 | * 1、Toolbar 11 | * 1.1 控制属性 12 | * data: 类型:数组, 数据格式请参考easyui-datagrid和easyui-dialog的toolbar 13 | * buttonPosition: toolbar中按钮位置,其值:left|right 14 | * 15 | * 1.2 显示 16 | * $('#').toolbar({ 17 | * data: [{ 18 | * text: 'save', 19 | * iconCls: 'icon-save', 20 | * handler: function(){} 21 | * },'-',{ 22 | * text: 'delete', 23 | * iconCls: 'icon-delete', 24 | * handler: function(){} 25 | * }] 26 | * }); 27 | * 28 | * 29 | */ 30 | (function($){ 31 | function init(target){ 32 | var options = $(target).toolbar('options'); 33 | var tb = $(target) 34 | // .addClass('datagrid-toolbar') 35 | // .addClass("panel-header") 36 | .addClass("dialog-toolbar panel-body") 37 | .css({'height': '28px', 'line-height':'24px', overflow: 'hidden'}); 38 | 39 | if($.trim(tb.html()).length > 0){ 40 | return; 41 | } 42 | 43 | tb.append('
                '); 44 | if(options.buttonPosition == 'right'){ 45 | tb.find('table').css('float', 'right'); 46 | } 47 | 48 | if(options.data){ 49 | addItems(target, options.data); 50 | }else{ 51 | options.loader.call(target, function(data){ 52 | options.data = data; 53 | addItems(target, options.data); 54 | }, function(){ 55 | options.onLoadError.apply(target, arguments); 56 | }); 57 | } 58 | } 59 | 60 | function add(target, item){ 61 | var tr = $(target).find('tr'); 62 | if(typeof item == 'string' && $.trim(item) == '-'){ 63 | $('
                ').appendTo(tr); 64 | }else{ 65 | if($.trim(item.text) == '-'){ 66 | $('
                ').appendTo(tr); 67 | }else{ 68 | var td = $('').appendTo(tr); 69 | var button = $("").appendTo(td); 70 | button[0].onclick = eval(item.handler || function () {}); 71 | button.linkbutton($.extend({}, item, {plain: true})); 72 | } 73 | } 74 | } 75 | 76 | function addItems(target, items){ 77 | if(!$.isArray(items)) return; 78 | for(var i=0; i 6 | * 7 | * 8 | * 扩展如下: 9 | * 1、增加方法appendItems,支持批量添加。 10 | * 2、支持将'-'转化为分割符,类似datagrid.toolbar。 11 | * 3、新增方法 addEventListener,用于初始化之后动态注册事件,支持一个事件可以注册多个处理方法。 12 | * 3.1 参数说明: 13 | * name: 事件名称 14 | * override: 是否覆盖默认事件处理, 值: true|false, 默认:false 15 | * handler: 事件处理方法 16 | * 17 | * 18 | * 3.1 单个事件处理方法注册 19 | * $('#mm').menu('addEventListener', { 20 | * name: 'onClick', 21 | * handler: function(item){} 22 | * }); 23 | * 24 | * 25 | * 3.2 多个事件处理方法注册 26 | * $('#mm').menu('addEventListener', [{ 27 | * name: 'onClick', 28 | * handler: function(item){} 29 | * },{ 30 | * name: 'onShow', 31 | * handler: function(){} 32 | * }]); 33 | * 34 | * 35 | * 3.4 覆盖事件默认处理方法 36 | * $('#mm').menu('addEventListener', { 37 | * name: 'onClick', 38 | * override: true, 39 | * handler: function(item){} 40 | * }); 41 | * 42 | * 43 | */ 44 | (function($){ 45 | function appendItems(target, submenu, parentEl){ 46 | if(submenu && $.isArray(submenu)){ 47 | $.each(submenu, function(){ 48 | var item = this; 49 | 50 | var parent = {}; 51 | if(parentEl){ 52 | $.extend(parent, {parent: parentEl}); 53 | } 54 | 55 | if($.isPlainObject(item)){ 56 | $(target).menu('appendItem', $.extend(item, parent)); 57 | 58 | if(item.submenu){ 59 | var p = $(target).menu('findItem', item.text); 60 | appendItems(target, item.submenu, p.target); 61 | } 62 | }else if(item == '-'){ 63 | var el = $(target).menu('appendItem', $.extend({text: item}, parent)).menu('findItem', item).target; 64 | $(el).removeClass('menu-item').addClass('menu-sep').removeAttr('style').empty(); 65 | } 66 | }); 67 | } 68 | } 69 | 70 | function addEventListener(target, eventName, handler, override){ 71 | var options = $(target).menu('options'); 72 | var defaultActionEvent = options[eventName]; 73 | switch (eventName){ 74 | case 'onShow': 75 | if(override){ 76 | options[eventName] = handler; 77 | }else{ 78 | options[eventName] = function(){ 79 | defaultActionEvent.apply(this, arguments); 80 | handler.apply(this, arguments); 81 | } 82 | } 83 | break; 84 | case 'onHide': 85 | if(override){ 86 | options[eventName] = handler; 87 | }else{ 88 | options[eventName] = function(){ 89 | defaultActionEvent.apply(this, arguments); 90 | handler.apply(this, arguments); 91 | } 92 | } 93 | break; 94 | case 'onClick': 95 | if(override){ 96 | options[eventName] = handler; 97 | }else{ 98 | options[eventName] = function(item){ 99 | defaultActionEvent.apply(this, arguments); 100 | handler.apply(this, arguments); 101 | } 102 | } 103 | break; 104 | default : 105 | break; 106 | } 107 | } 108 | 109 | 110 | $.extend($.fn.menu.methods, { 111 | followCustomHandle: function(jq){ 112 | return this.each(function(){}); 113 | }, 114 | appendItems: function(jq, param){ 115 | return jq.each(function(){ 116 | appendItems(this, param); 117 | }); 118 | }, 119 | addEventListener: function(jq, param){ 120 | return jq.each(function(){ 121 | var eventList = $.isArray(param) ? param : [param]; 122 | var target = this; 123 | $.each(eventList, function(i, event){ 124 | addEventListener(target, event.name, event.handler|| function(){}, event.override); 125 | }); 126 | }); 127 | } 128 | }); 129 | })(jQuery); 130 | -------------------------------------------------------------------------------- /demo_ext/treegrid/celltooltip.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TreeGrid Tooltip -- jQUery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
                54 |
                55 |

                Tooltip显示风格之Cell

                56 |

                请将鼠标移动到每行记录对应[Name]列或[Date]列,查看显示效果。

                57 |
                58 |
                59 |
                60 |

                javascript:

                61 | 82 | 83 |

                html:

                84 | 91 |
                92 |
                93 | 94 | 95 | -------------------------------------------------------------------------------- /demo_ext/toolbar/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |
                63 |
                64 |

                Toolbar演示

                65 |

                静态数据构建

                66 |
                67 | 68 |

                动态数据构建

                69 |
                70 |
                71 |
                72 |

                javascript:

                73 | 97 | 98 |

                html:

                99 | 109 |
                110 |
                111 | 112 | -------------------------------------------------------------------------------- /demo_ext/tree/expand3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | expandTo Method of Tree - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
                56 |
                57 |

                expandTo增强演示

                58 |

                原始功能演示:展开到达指定节点。 增强功能演示: 展开到第几层

                59 | 60 | 61 | 62 |
                  63 |
                  64 |
                  65 |

                  javascript:

                  66 | 87 | 88 |

                  html:

                  89 | 99 |
                  100 |
                  101 | 102 | 103 | -------------------------------------------------------------------------------- /my97/skin/default/datepicker.css: -------------------------------------------------------------------------------- 1 | /* 2 | * My97 DatePicker 4.8 3 | */ 4 | 5 | .WdateDiv{ 6 | width:180px; 7 | background-color:#FFFFFF; 8 | border:#bbb 1px solid; 9 | padding:2px; 10 | } 11 | 12 | .WdateDiv2{ 13 | width:360px; 14 | } 15 | .WdateDiv *{font-size:9pt;} 16 | 17 | .WdateDiv .NavImg a{ 18 | display:block; 19 | cursor:pointer; 20 | height:16px; 21 | width:16px; 22 | } 23 | 24 | .WdateDiv .NavImgll a{ 25 | float:left; 26 | background:transparent url(img.gif) no-repeat scroll 0 0; 27 | } 28 | .WdateDiv .NavImgl a{ 29 | float:left; 30 | background:transparent url(img.gif) no-repeat scroll -16px 0; 31 | } 32 | .WdateDiv .NavImgr a{ 33 | float:right; 34 | background:transparent url(img.gif) no-repeat scroll -32px 0; 35 | } 36 | .WdateDiv .NavImgrr a{ 37 | float:right; 38 | background:transparent url(img.gif) no-repeat scroll -48px 0; 39 | } 40 | 41 | .WdateDiv #dpTitle{ 42 | height:24px; 43 | margin-bottom:2px; 44 | padding:1px; 45 | } 46 | 47 | .WdateDiv .yminput{ 48 | margin-top:2px; 49 | text-align:center; 50 | height:20px; 51 | border:0px; 52 | width:50px; 53 | cursor:pointer; 54 | } 55 | 56 | .WdateDiv .yminputfocus{ 57 | margin-top:2px; 58 | text-align:center; 59 | font-weight:bold; 60 | height:20px; 61 | color:blue; 62 | border:#ccc 1px solid; 63 | width:50px; 64 | } 65 | 66 | .WdateDiv .menuSel{ 67 | z-index:1; 68 | position:absolute; 69 | background-color:#FFFFFF; 70 | border:#ccc 1px solid; 71 | display:none; 72 | } 73 | 74 | .WdateDiv .menu{ 75 | cursor:pointer; 76 | background-color:#fff; 77 | } 78 | 79 | .WdateDiv .menuOn{ 80 | cursor:pointer; 81 | background-color:#BEEBEE; 82 | } 83 | 84 | .WdateDiv .invalidMenu{ 85 | color:#aaa; 86 | } 87 | 88 | .WdateDiv .YMenu{ 89 | margin-top:20px; 90 | 91 | } 92 | 93 | .WdateDiv .MMenu{ 94 | margin-top:20px; 95 | *width:62px; 96 | } 97 | 98 | .WdateDiv .hhMenu{ 99 | margin-top:-90px; 100 | margin-left:26px; 101 | } 102 | 103 | .WdateDiv .mmMenu{ 104 | margin-top:-46px; 105 | margin-left:26px; 106 | } 107 | 108 | .WdateDiv .ssMenu{ 109 | margin-top:-24px; 110 | margin-left:26px; 111 | } 112 | 113 | .WdateDiv .Wweek { 114 | text-align:center; 115 | background:#DAF3F5; 116 | border-right:#BDEBEE 1px solid; 117 | } 118 | 119 | .WdateDiv .MTitle{ 120 | background-color:#BDEBEE; 121 | } 122 | .WdateDiv .WdayTable2{ 123 | border-collapse:collapse; 124 | border:#c5d9e8 1px solid; 125 | } 126 | .WdateDiv .WdayTable2 table{ 127 | border:0; 128 | } 129 | 130 | .WdateDiv .WdayTable{ 131 | line-height:20px; 132 | border:#c5d9e8 1px solid; 133 | } 134 | .WdateDiv .WdayTable td{ 135 | text-align:center; 136 | } 137 | 138 | .WdateDiv .Wday{ 139 | cursor:pointer; 140 | } 141 | 142 | .WdateDiv .WdayOn{ 143 | cursor:pointer; 144 | background-color:#C0EBEF; 145 | } 146 | 147 | .WdateDiv .Wwday{ 148 | cursor:pointer; 149 | color:#FF2F2F; 150 | } 151 | 152 | .WdateDiv .WwdayOn{ 153 | cursor:pointer; 154 | color:#000; 155 | background-color:#C0EBEF; 156 | } 157 | .WdateDiv .Wtoday{ 158 | cursor:pointer; 159 | color:blue; 160 | } 161 | .WdateDiv .Wselday{ 162 | background-color:#A9E4E9; 163 | } 164 | .WdateDiv .WspecialDay{ 165 | background-color:#66F4DF; 166 | } 167 | 168 | .WdateDiv .WotherDay{ 169 | cursor:pointer; 170 | color:#6A6AFF; 171 | } 172 | 173 | .WdateDiv .WotherDayOn{ 174 | cursor:pointer; 175 | background-color:#C0EBEF; 176 | } 177 | 178 | .WdateDiv .WinvalidDay{ 179 | color:#aaa; 180 | } 181 | 182 | .WdateDiv #dpTime{ 183 | float:left; 184 | margin-top:3px; 185 | margin-right:30px; 186 | } 187 | 188 | .WdateDiv #dpTime #dpTimeStr{ 189 | margin-left:1px; 190 | } 191 | 192 | .WdateDiv #dpTime input{ 193 | width:18px; 194 | height:20px; 195 | text-align:center; 196 | border:#ccc 1px solid; 197 | } 198 | 199 | .WdateDiv #dpTime .tB{ 200 | border-right:0px; 201 | } 202 | 203 | .WdateDiv #dpTime .tE{ 204 | border-left:0; 205 | border-right:0; 206 | } 207 | 208 | .WdateDiv #dpTime .tm{ 209 | width:7px; 210 | border-left:0; 211 | border-right:0; 212 | } 213 | 214 | .WdateDiv #dpTime #dpTimeUp{ 215 | height:10px; 216 | width:13px; 217 | border:0px; 218 | background:url(img.gif) no-repeat -32px -16px; 219 | } 220 | 221 | .WdateDiv #dpTime #dpTimeDown{ 222 | height:10px; 223 | width:13px; 224 | border:0px; 225 | background:url(img.gif) no-repeat -48px -16px; 226 | } 227 | 228 | .WdateDiv #dpQS { 229 | float:left; 230 | margin-right:3px; 231 | margin-top:3px; 232 | background:url(img.gif) no-repeat 0px -16px; 233 | width:20px; 234 | height:20px; 235 | cursor:pointer; 236 | } 237 | .WdateDiv #dpControl { 238 | text-align:right; 239 | } 240 | .WdateDiv .dpButton{ 241 | height:20px; 242 | width:45px; 243 | border:#ccc 1px solid; 244 | margin-top:2px; 245 | margin-right:1px; 246 | } -------------------------------------------------------------------------------- /demo_ext/panel/toolbar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 |
                  58 |
                  59 |

                  Toolbar演示

                  60 |
                  61 |
                  62 |
                  63 |

                  javascript:

                  64 | 92 | 93 |

                  html:

                  94 | 98 |
                  99 |
                  100 | 101 | -------------------------------------------------------------------------------- /datagridview/datagrid-bufferview.js: -------------------------------------------------------------------------------- 1 | var bufferview = $.extend({}, $.fn.datagrid.defaults.view, { 2 | render: function(target, container, frozen){ 3 | var state = $.data(target, 'datagrid'); 4 | var opts = state.options; 5 | var rows = this.rows || []; 6 | if (!rows.length) { 7 | return; 8 | } 9 | var fields = $(target).datagrid('getColumnFields', frozen); 10 | 11 | if (frozen){ 12 | if (!(opts.rownumbers || (opts.frozenColumns && opts.frozenColumns.length))){ 13 | return; 14 | } 15 | } 16 | 17 | var index = parseInt(opts.finder.getTr(target,'','last',(frozen?1:2)).attr('datagrid-row-index'))+1 || 0; 18 | var table = ['']; 19 | for(var i=0; i'); 35 | table.push(this.renderRow.call(this, target, fields, frozen, index, rows[i])); 36 | table.push(''); 37 | index++; 38 | } 39 | table.push('
                  '); 40 | 41 | $(container).append(table.join('')); 42 | }, 43 | 44 | onBeforeRender: function(target){ 45 | var state = $.data(target, 'datagrid'); 46 | var opts = state.options; 47 | var dc = state.dc; 48 | var view = this; 49 | this.renderedCount = 0; 50 | this.rows = []; 51 | 52 | // erase the onLoadSuccess event, make sure it can't be triggered 53 | state.onLoadSuccess = opts.onLoadSuccess; 54 | opts.onLoadSuccess = function(){}; 55 | 56 | dc.body1.add(dc.body2).empty(); 57 | dc.body2.unbind('.datagrid').bind('scroll.datagrid', function(e){ 58 | if (state.onLoadSuccess){ 59 | opts.onLoadSuccess = state.onLoadSuccess; // restore the onLoadSuccess event 60 | state.onLoadSuccess = undefined; 61 | } 62 | if ($(this).scrollTop() >= getDataHeight()-$(this).height()){ 63 | if (this.scrollTimer){ 64 | clearTimeout(this.scrollTimer); 65 | } 66 | this.scrollTimer = setTimeout(function(){ 67 | view.populate.call(view, target); 68 | while (getDataHeight() < dc.body2.height() && view.renderedCount < state.data.total){ 69 | view.populate.call(view, target); 70 | } 71 | }, 50); 72 | } 73 | }); 74 | 75 | function getDataHeight(){ 76 | var h = 0; 77 | dc.body2.children('table.datagrid-btable').each(function(){ 78 | h += $(this).outerHeight(); 79 | }); 80 | if (!h){ 81 | h = view.renderedCount * 25; 82 | } 83 | return h; 84 | } 85 | }, 86 | 87 | populate: function(target){ 88 | var state = $.data(target, 'datagrid'); 89 | var opts = state.options; 90 | var dc = state.dc; 91 | if (this.renderedCount >= state.data.total){return;} 92 | this.rows = state.data.rows.slice(this.renderedCount, this.renderedCount+opts.pageSize); 93 | if (this.rows.length){ 94 | this.renderedCount += this.rows.length; 95 | opts.view.render.call(opts.view, target, dc.body2, false); 96 | opts.view.render.call(opts.view, target, dc.body1, true); 97 | opts.onLoadSuccess.call(target, { 98 | total: state.data.total, 99 | rows: this.rows 100 | }); 101 | } else { 102 | var param = $.extend({}, opts.queryParams, { 103 | page: Math.floor(this.renderedCount/opts.pageSize)+1, 104 | rows: opts.pageSize 105 | }); 106 | if (opts.sortName){ 107 | $.extend(param, { 108 | sort: opts.sortName, 109 | order: opts.sortOrder 110 | }); 111 | } 112 | if (opts.onBeforeLoad.call(target, param) == false) return; 113 | 114 | $(target).datagrid('loading'); 115 | var result = opts.loader.call(target, param, function(data){ 116 | $(target).datagrid('loaded'); 117 | var data = opts.loadFilter.call(target, data); 118 | state.data.rows = state.data.rows.concat(data.rows); 119 | opts.view.rows = data.rows; 120 | opts.view.renderedCount += data.rows.length; 121 | opts.view.render.call(opts.view, target, dc.body2, false); 122 | opts.view.render.call(opts.view, target, dc.body1, true); 123 | opts.onLoadSuccess.call(target, data); 124 | }, function(){ 125 | $(target).datagrid('loaded'); 126 | opts.onLoadError.apply(target, arguments); 127 | }); 128 | if (result == false){ 129 | $(target).datagrid('loaded'); 130 | } 131 | } 132 | } 133 | }); 134 | -------------------------------------------------------------------------------- /demo_ext/window/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic Window - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 21 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
                  45 |
                  46 | 55 |
                  56 |
                  57 |

                  javascript:

                  58 | 69 | 70 |

                  html:

                  71 | 81 |
                  82 |
                  83 | 84 | 85 | -------------------------------------------------------------------------------- /demo_ext/datagrid/headercontextmenu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DataGrid with Header Contextmenu -- jQUery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 |
                  59 |
                  60 |

                  Header ContextMenu 及默认菜单项演示

                  61 |
                  62 |
                  63 |
                  64 |

                  javascript:

                  65 | 92 | 93 |

                  html:

                  94 | 100 |
                  101 |
                  102 | 103 | -------------------------------------------------------------------------------- /demo_ext/tree/load_data2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Simple Data - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 52 | 53 | 54 |
                  55 |
                  56 |

                  类标准格式

                  57 |
                    58 |
                  • 所谓“类标准格式”是指与“标准格式”结构相同,不同是属性名。
                  • 59 |
                  • 可通过扩展属性idField、textField、childrenField、iconField、attributes向标准格式转化。
                  • 60 |
                  61 |
                    62 |
                    63 |
                    64 |

                    javascript:

                    65 | 93 | 94 |

                    html:

                    95 | 100 |
                    101 |
                    102 | 103 | -------------------------------------------------------------------------------- /demo_ext/datagrid/tooltip.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DataGrid Tooltip -- jQUery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 |
                    59 |
                    60 |

                    Row Tooltip

                    61 |
                    62 |
                    63 |
                    64 |

                    javascript:

                    65 | 90 | 91 |

                    html:

                    92 | 98 |
                    99 |
                    100 | 101 | -------------------------------------------------------------------------------- /my97/skin/whyGreen/datepicker.css: -------------------------------------------------------------------------------- 1 | /* 2 | * My97 DatePicker 4.8 Skin:whyGreen 3 | */ 4 | .WdateDiv{ 5 | width:180px; 6 | background-color:#fff; 7 | border:#C5E1E4 1px solid; 8 | padding:2px; 9 | } 10 | 11 | .WdateDiv2{ 12 | width:360px; 13 | } 14 | .WdateDiv *{font-size:9pt;} 15 | 16 | .WdateDiv .NavImg a{ 17 | cursor:pointer; 18 | display:block; 19 | width:16px; 20 | height:16px; 21 | margin-top:1px; 22 | } 23 | 24 | .WdateDiv .NavImgll a{ 25 | float:left; 26 | background:url(img.gif) no-repeat; 27 | } 28 | .WdateDiv .NavImgl a{ 29 | float:left; 30 | background:url(img.gif) no-repeat -16px 0px; 31 | } 32 | .WdateDiv .NavImgr a{ 33 | float:right; 34 | background:url(img.gif) no-repeat -32px 0px; 35 | } 36 | .WdateDiv .NavImgrr a{ 37 | float:right; 38 | background:url(img.gif) no-repeat -48px 0px; 39 | } 40 | 41 | .WdateDiv #dpTitle{ 42 | height:24px; 43 | padding:1px; 44 | border:#c5d9e8 1px solid; 45 | background:url(bg.jpg); 46 | margin-bottom:2px; 47 | } 48 | 49 | .WdateDiv .yminput{ 50 | margin-top:2px; 51 | text-align:center; 52 | border:0px; 53 | height:20px; 54 | width:50px; 55 | color:#034c50; 56 | background-color:transparent; 57 | cursor:pointer; 58 | } 59 | 60 | .WdateDiv .yminputfocus{ 61 | margin-top:2px; 62 | text-align:center; 63 | border:#939393 1px solid; 64 | font-weight:bold; 65 | color:#034c50; 66 | height:20px; 67 | width:50px; 68 | } 69 | 70 | .WdateDiv .menuSel{ 71 | z-index:1; 72 | position:absolute; 73 | background-color:#FFFFFF; 74 | border:#A3C6C8 1px solid; 75 | display:none; 76 | } 77 | 78 | .WdateDiv .menu{ 79 | cursor:pointer; 80 | background-color:#fff; 81 | color:#11777C; 82 | } 83 | 84 | .WdateDiv .menuOn{ 85 | cursor:pointer; 86 | background-color:#BEEBEE; 87 | } 88 | 89 | .WdateDiv .invalidMenu{ 90 | color:#aaa; 91 | } 92 | 93 | .WdateDiv .YMenu{ 94 | margin-top:20px; 95 | } 96 | 97 | .WdateDiv .MMenu{ 98 | margin-top:20px; 99 | *width:62px; 100 | } 101 | 102 | .WdateDiv .hhMenu{ 103 | margin-top:-90px; 104 | margin-left:26px; 105 | } 106 | 107 | .WdateDiv .mmMenu{ 108 | margin-top:-46px; 109 | margin-left:26px; 110 | } 111 | 112 | .WdateDiv .ssMenu{ 113 | margin-top:-24px; 114 | margin-left:26px; 115 | } 116 | 117 | .WdateDiv .Wweek { 118 | text-align:center; 119 | background:#DAF3F5; 120 | border-right:#BDEBEE 1px solid; 121 | } 122 | 123 | .WdateDiv .MTitle{ 124 | color:#13777e; 125 | background-color:#bdebee; 126 | } 127 | .WdateDiv .WdayTable2{ 128 | border-collapse:collapse; 129 | border:#BEE9F0 1px solid; 130 | } 131 | .WdateDiv .WdayTable2 table{ 132 | border:0; 133 | } 134 | 135 | .WdateDiv .WdayTable{ 136 | line-height:20px; 137 | color:#13777e; 138 | background-color:#edfbfb; 139 | border:#BEE9F0 1px solid; 140 | } 141 | .WdateDiv .WdayTable td{ 142 | text-align:center; 143 | } 144 | 145 | .WdateDiv .Wday{ 146 | cursor:pointer; 147 | } 148 | 149 | .WdateDiv .WdayOn{ 150 | cursor:pointer; 151 | background-color:#74d2d9 ; 152 | } 153 | 154 | .WdateDiv .Wwday{ 155 | cursor:pointer; 156 | color:#ab1e1e; 157 | } 158 | 159 | .WdateDiv .WwdayOn{ 160 | cursor:pointer; 161 | background-color:#74d2d9; 162 | } 163 | .WdateDiv .Wtoday{ 164 | cursor:pointer; 165 | color:blue; 166 | } 167 | .WdateDiv .Wselday{ 168 | background-color:#A7E2E7; 169 | } 170 | .WdateDiv .WspecialDay{ 171 | background-color:#66F4DF; 172 | } 173 | 174 | .WdateDiv .WotherDay{ 175 | cursor:pointer; 176 | color:#0099CC; 177 | } 178 | 179 | .WdateDiv .WotherDayOn{ 180 | cursor:pointer; 181 | background-color:#C0EBEF; 182 | } 183 | 184 | .WdateDiv .WinvalidDay{ 185 | color:#aaa; 186 | } 187 | 188 | .WdateDiv #dpTime{ 189 | float:left; 190 | margin-top:3px; 191 | margin-right:30px; 192 | } 193 | 194 | .WdateDiv #dpTime #dpTimeStr{ 195 | margin-left:1px; 196 | color:#497F7F; 197 | } 198 | 199 | .WdateDiv #dpTime input{ 200 | height:20px; 201 | width:18px; 202 | text-align:center; 203 | color:#333; 204 | border:#61CAD0 1px solid; 205 | } 206 | 207 | .WdateDiv #dpTime .tB{ 208 | border-right:0px; 209 | } 210 | 211 | .WdateDiv #dpTime .tE{ 212 | border-left:0; 213 | border-right:0; 214 | } 215 | 216 | .WdateDiv #dpTime .tm{ 217 | width:7px; 218 | border-left:0; 219 | border-right:0; 220 | } 221 | 222 | .WdateDiv #dpTime #dpTimeUp{ 223 | height:10px; 224 | width:13px; 225 | border:0px; 226 | background:url(img.gif) no-repeat -32px -16px; 227 | } 228 | 229 | .WdateDiv #dpTime #dpTimeDown{ 230 | height:10px; 231 | width:13px; 232 | border:0px; 233 | background:url(img.gif) no-repeat -48px -16px; 234 | } 235 | 236 | .WdateDiv #dpQS { 237 | float:left; 238 | margin-right:3px; 239 | margin-top:3px; 240 | background:url(img.gif) no-repeat 0px -16px; 241 | width:20px; 242 | height:20px; 243 | cursor:pointer; 244 | } 245 | .WdateDiv #dpControl { 246 | text-align:right; 247 | margin-top:3px; 248 | } 249 | .WdateDiv .dpButton{ 250 | height:20px; 251 | width:45px; 252 | margin-top:2px; 253 | border:#38B1B9 1px solid; 254 | background-color:#CFEBEE; 255 | color:#08575B; 256 | } -------------------------------------------------------------------------------- /demo_ext/datagrid/rowcontextmenu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DataGrid with Row ContextMenu -- jQUery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 |
                    57 |
                    58 |

                    Row ContextMenu 及默认菜单项演示

                    59 |
                    60 |
                    61 |
                    62 |

                    javascript:

                    63 | 89 | 90 |

                    html:

                    91 | 97 |
                    98 |
                    99 | 100 | -------------------------------------------------------------------------------- /demo_ext/combotree/load_data.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Simple Data - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 55 | 56 | 57 |
                    58 |
                    59 |

                    类标准格式

                    60 |
                      61 |
                    • 所谓“类标准格式”是指与“标准格式”结构相同,不同是属性名。
                    • 62 |
                    • 可通过扩展属性idField、textField、childrenField、iconField、attributes向标准格式转化。
                    • 63 |
                    64 | 65 |
                    66 |
                    67 |

                    javascript:

                    68 | 96 | 97 |

                    html:

                    98 | 103 |
                    104 |
                    105 | 106 | -------------------------------------------------------------------------------- /demo_ext/treegrid/rowediting.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | RowEditing Treegrid - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 26 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
                    60 |
                    61 |

                    仿Ext.grid RowEditing风格

                    62 |

                    点击任一行,进入编辑模式

                    63 |
                    64 |
                    65 |
                    66 |

                    javascript:

                    67 | 93 | 94 |

                    html:

                    95 | 102 |
                    103 |
                    104 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /demo_ext/tree/custommenu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Custom ContextMenu - jQuery EasyUI Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |
                    63 |
                    64 |

                    自定义右键菜单

                    65 |

                    请点击自定义菜单项[others]下的[item1]、[item2]项,查看菜单项点击事件处理。

                    66 |
                      67 |
                      68 |
                      69 |

                      javascript:

                      70 | 101 | 102 |

                      html:

                      103 | 110 |
                      111 |
                      112 | 113 | --------------------------------------------------------------------------------