Jquery easyui教程
目 录
o 4.1创建简单菜单… 10
o 4.2创建连接按钮… 11
o 4.3建立菜单按钮… 12
o 4.4建立拆分按钮… 13
o 5.1面板上的复合版面… 16
o 5.2建立可折叠版面… 17
o 5.3建立TABS. 18
o 5.4动态添加tabs. 19
o 5.5创建XP式样左面板… 20
o 6.1 转换HTML表格到DataGrid. 23
o 6.2 给DataGrid添加分页… 25
o 6.3 得到DataGrid选择行… 27
o 6.4 添加工具栏到DataGrid. 28
o 6.5 DataGrid冻结列… 30
o 6.6 动态改变DataGrid列… 31
o 6.7 格式化DataGrid列… 32
o 6.8 添加排序到DataGrid. 33
o 6.9 在DataGrid上的复选框… 36
o 6.10 自定义DataGrid分页… 37
o 6.11使DataGrid能编辑… 38
o 6.12 DataGrid中合并单元格… 41
o 7.1 我第一个窗口… 44
o 7.2 自定义窗口工具… 45
o 7.3 Window和Layout 46
o 7.4 创建对话框… 47
o 9.1 Ajax方式发送表单… 58
o 9.2 给表单添加复合tree字段… 59
o 9.3 验证表单… 62
o 10.1 Base. 65
§ 10.1.1 EasyLoader 66
§ 10.1.2 Draggable. 67
§ 10.1.3 Droppable. 69
§ 10.1.4 Resizable. 70
o 10.2 layout 71
§ 10.2.1 Panel 71
§ 10.2.2 tabs 76
§ 10.2.3 accordion. 79
§ 10.2.4 layout 82
o 10.3 Menu and button. 83
o 10.4 form.. 88
o 10.5 window.. 101
o 10.6 Datagrid and tree. 107
概述
这个教程的目的是说明如何使用easyui框架容易的创建网页。首先,你需要包含一些js和css文件:
easyui预定义了一些图标css,这些css类可以显示图片背景(16×16)。使用这些类之前,需要包含:
这个教程显示如何使HTML元素变得可拖放。这个例子会创建3个DIV元素然后让它们变得可拖放。
首先,创建三个DIV元素:
让第一个DIV元素可拖放,使用默认的拖放样式。
$('#dd1').draggable();
让第二个DIV元素使用proxy来拖放,proxy:'clone'表示proxy使用原始元素的复制。
$('#dd2').draggable({
proxy:'clone'
});
让第三个DIV元素使用自定义proxy来拖放
$('#dd3').draggable({
proxy:function(source){
var p = $('
p.appendTo('body');
return p;
}
});
·
使用jQuery easyui,我们在web应用中就有了拖放的能力。这个教程显示了如何构建购物车页,它使用户拖放他们希望购买的产品,更新购物篮的物品和价格。
显示产品页:
ul元素包含一些li元素以显示产品。每一个产品的名称和单价属性在P元素中。
创建购物车:
Name | Quantity | Price |
---|
Total: $0
使用datagrid显示购物篮项目。
拖曳产品副本
$('.item').draggable({
revert:true,
proxy:'clone',
onStartDrag:function(){
$(this).draggable('options').cursor = 'not-allowed';
$(this).draggable('proxy').css('z-index',10);
},
onStopDrag:function(){
$(this).draggable('options').cursor='move';
}
});
我们设置draggable属性proxy为clone,所以拖曳元素使用clone效果。
将选择的产品放入购物车
$('.cart').droppable({
onDragEnter:function(e,source){
$(source).draggable('options').cursor='auto';
},
onDragLeave:function(e,source){
$(source).draggable('options').cursor='not-allowed';
},
onDrop:function(e,source){
var name = $(source).find('p:eq(0)').html();
var price = $(source).find('p:eq(1)').html();
addProduct(name, parseFloat(price.split('$')[1]));
}
});
var data = {"total":0,"rows":[]};
var totalCost = 0;
function addProduct(name,price){
function add(){
for(var i=0; i<data.total; i++){
var row = data.rows[i];
if (row.name == name){
row.quantity += 1;
return;
}
}
data.total += 1;
data.rows.push({
name:name,
quantity:1,
price:price
});
}
add();
totalCost += price;
$('#cartcontent').datagrid('loadData', data);
$('div.cart .total').html('Total: $'+totalCost);
}
当放下产品时,我们得到产品的名称和单价,然后调用addProduct函数更新购物篮。
·
本教程显示了如何使用jQuery easyui创建课程表。我们创建两个表:在左面的课程列表和右面的时间表。你可以拖课程到时间表的单元格中。课程是
显示课程
English |
Science |
显示时间表
Monday | Tuesday | Wednesday | Thursday | Friday | |
08:00 |
拖动左面的课程
$('.left .item').draggable({
revert:true,
proxy:'clone'
});
放置课程到时间表中
$('.right td.drop').droppable({
onDragEnter:function(){
$(this).addClass('over');
},
onDragLeave:function(){
$(this).removeClass('over');
},
onDrop:function(e,source){
$(this).removeClass('over');
if ($(source).hasClass('assigned')){
$(this).append(source);
} else {
var c = $(source).clone().addClass('assigned');
$(this).empty().append(c);
c.draggable({
revert:true
});
}
}
});
当用户拖动左面的课程到右面的时间表中,onDrop函数被调用。源元素的副本被从左面拖动并且附加到到时间表的单元格中。当放置课程到时间表的单元格到另一个单元格时,简单的移动它。
·
在DIV标记中定义菜单。像这样:
建立菜单,你需要运行下列jQuery代码
$('#mm').menu();
//或者 $('#mm').menu(options);
当菜单被创建时是不可见的,可使用show方法显示或者hide方法隐藏:
$('#mm').menu('show', {
left: 200,
top: 100
});
现在,我们创建菜单并在(200,100)处显示。运行代码会得到:
通常使用
创建链接按钮,首先创建A元素:
icon属性是icon CSS类是在按钮上显示的图标。运行代码,出现:
一些时候,你可以决定禁用或者不禁用连接按钮,使用下面的代码可以禁用连接图标:
$(selector).linkbutton({disabled:true});
菜单按钮包含按钮和菜单两部分,当点击或者移动鼠标到按钮上的时候,显示相应的菜单。定义菜单按钮,需要定义链接按钮和菜单,像这样:
使用下列jQuery代码:
$('#mb1').menubutton({menu:'#mm1'});
$('#mb2').menubutton({menu:'#mm2'});
现在,菜单按钮就完成了。
拆分按钮包括链接按钮和菜单。当用户点击或者悬停在下箭头区域时显示相关菜单。这个例子是建立拆分按钮的演示:
首先,创建一个链接按钮和菜单标记:
jQuery 代码:
$('#sb').splitbutton({menu:'#mm'});
运行后会出现:
·
边框版面提供5个区域:东西南北中(其实就是上下左右中),下面是通常用法:
运用版面,需要确认版面容器然后定义一些区域。版面至少要有一个中间区域。下列是版面例子:
我们使用DIV容器创建边框版面。版面拆分容器为2部分,左面是导航菜单右面是主内容。中间区域的面板,我们设置href属性以调用出示网页。
运行layout.html的结果是:
写下onclick事件控制函数以获取数据,showpage函数非常简单:
function showpage(url){
$('#content').load(url);
}
面板允许你建立为多用户定制版面。这个例子我们建立MSN信息框,通过面板版面插件:
我们使用多种版面在面板区域中。最上面的信息框我们放置搜索input,也可以放置头像在右面。中间区域我们差分成两部分通过split属性为TRUE,允许用户改变面板上区域的大小:
代码:
我们不需要编写任何js代码,但是拥有强大的用户接口设计的能力。
这个教程中,我们学习关于easyui可折叠性。可折叠包括一系列面板。所有面板头是全部可见的,但是在一个时期内只有一个面板的body内容是可见的。当用户点击面板头,body内容变为可见其他面板body内容变得不可见。
Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.
我们建立3个面板,第三个面板内容是一个树状菜单。
这个教程显示你如何使用easyui建立tabs组件。tabs有多个面板,这些面板能被动态的添加或者删除。你可以使用tabs来显示不同的实体。在一个时间内只显示一个面板。每一个面板拥有title,icon和close按钮。当tabs被选择时,相关面板的内容被现实。
tabs从HTML标记创建,包含DIV容器和一些DIV面板。
我们创建3个面板的tabs组件,第二个和第三个面板可以通过点击close按钮关闭。
你只需调用add方法,就可以使用jquery easyui很容易动态添加tabs。在这个教程中,我们动态的添加显示一个页面使用iframe。当点击添加add按钮,新tab被添加。如果tab已经存在,被激活。
第一步:建立tabs
HTML代码很简单,我们创建tabs用一个tab面板,名字为home。记住,我们不需要写任何js代码。
第二步:使addTab函数生效
function addTab(title, url){
if ($('#tt').tabs('exists', title)){
$('#tt').tabs('select', title);
} else {
var content = '';
$('#tt').tabs('add',{
title:title,
content:content,
closable:true
});
}
}
我们使用exists方法判断tab是否存在。如果存在,则激活tab。调用add方法添加新tab面板。
通常,浏览文件夹在windowsXP中有左面板,包括常用任务内容。这个教程显示你如何使用easyui面板插件建立XP左面板。
定义几个面板
我们几个面板显示一些任务,每个面板仅可以折叠和展开工具按钮。代码像这样:
视图效果是不是我们想要的,我们必须改变面板header背景图片和收缩按钮icon。
定制面板外观效果
做到这一点并不难,我们需要做的是重新定义一些CSS。
.panel-header{
background:#fff url('panel_header_bg.gif') no-repeat top right;
}
.panel-body{
background:#f0f0f0;
}
.panel-tool-collapse{
background:url('arrow_up.gif') no-repeat 0px -3px;
}
.panel-tool-expand{
background:url('arrow_down.gif') no-repeat 0px -3px;
}
当使用easyui定义用户接口时是很简单的。
这个例子显示如何转换表格到DataGrid。DataGrid在thead标记中定义列,在tbody标记中定义数据。确定给每一个数据列设置字段名,看这个例子:
Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 |
---|---|---|---|---|---|
Data 1 | Data 2 | Data 3 | Data 4 | Data 5 | Data 6 |
Data 1 | Data 2 | Data 3 | Data 4 | Data 5 | Data 6 |
Data 1 | Data 2 | Data 3 | Data 4 | Data 5 | Data 6 |
Data 1 | Data 2 | Data 3 | Data 4 | Data 5 | Data 6 |
不需要js代码就能看到这个效果:
当然,你也可以定义复合表头,像这样:
Col 1
Col 2
Col 3
Details
Col 4
Col 5
Col 6
这个例子显示如何能从服务器中调用数据,如何添加分页到DataGrid中。
从远程服务器中调用数据,你必须设置url属性,服务器应该返回JSON格式数据。获得更多数据格式,请参考DataGrid文档。
建立 首先,我们在网页上定义标记。 jQuery代码 然后,写一些jQuery代码建立DataGrid组件 $('#tt').datagrid({ title:'Load Data', iconCls:'icon-save', width:600, height:250, url:'/demo3/data/getItems', columns:[[ {field:'itemid',title:'Item ID',width:80}, {field:'productid',title:'Product ID',width:80}, {field:'listprice',title:'List Price',width:80,align:'right'}, {field:'unitcost',title:'Unit Cost',width:80,align:'right'}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]], pagination:true }); 我们定义DataGrid列并且设置pagination属性为true,这样可以在DataGrid上产生分页栏按钮。分页发送2个参数到服务器。 我们使用etmvc framework编写后台服务代码,所以,url被映射到DataController类和getItems方法。 定义数据模型的例子 @Table(name="item") public class Item extends ActiveRecordBase{ @Id public String itemid; @Column public String productid; @Column public java.math.BigDecimal listprice; @Column public java.math.BigDecimal unitcost; @Column public String attr1; @Column public String status; } 编写控制代码 public class DataController extends ApplicationController{ /** * get item data * @param page page index * @param rows rows per page * @return JSON format string * @throws Exception */ public View getItems(int page, int rows) throws Exception{ long total = Item.count(Item.class, null, null); List Map result.put("total", total); result.put("rows", items); return new JsonView(result); } } 数据库配置实例 domain_base_class=com.et.ar.ActiveRecordBase com.et.ar.ActiveRecordBase.adapter_class=com.et.ar.adapters.MySqlAdapter com.et.ar.ActiveRecordBase.driver_class=com.mysql.jdbc.Driver com.et.ar.ActiveRecordBase.url=jdbc:mysql://localhost/jpetstore com.et.ar.ActiveRecordBase.username=root com.et.ar.ActiveRecordBase.password=soft123456 com.et.ar.ActiveRecordBase.pool_size=0 部署 这个例子显示了如何得到选择行的数据。 DataGrid组件包括2个方法检索选择行数据: 创建标记 创建 datagrid $('#tt').datagrid({ title:'Load Data', iconCls:'icon-save', width:600, height:250, url:'datagrid_data.json', columns:[[ {field:'itemid',title:'Item ID',width:80}, {field:'productid',title:'Product ID',width:80}, {field:'listprice',title:'List Price',width:80,align:'right'}, {field:'unitcost',title:'Unit Cost',width:80,align:'right'}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]] }); 用法演示 得到选择行数据: var row = $('#tt').datagrid('getSelected'); if (row){ alert('Item ID:'+row.itemid+"\nPrice:"+row.listprice); } 得到全部选择行的itemid: var ids = []; var rows = $('#tt').datagrid('getSelections'); for(var i=0; i<rows.length; i++){ ids.push(rows[i].itemid); } alert(ids.join('\n')); 这个例子显示了如何添加工具栏: DataGrid插件有工具栏属性,这个属性可以定义工具栏。工具栏包括定义了下列属性的按钮: 标记 jQuery $('#tt').datagrid({ title:'DataGrid with Toolbar', width:550, height:250, url:'datagrid_data.json', columns:[[ {field:'itemid',title:'Item ID',width:80}, {field:'productid',title:'Product ID',width:80}, {field:'listprice',title:'List Price',width:80,align:'right'}, {field:'unitcost',title:'Unit Cost',width:80,align:'right'}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]], toolbar:[{ text:'Add', iconCls:'icon-add', handler:function(){ alert('add') } },{ text:'Cut', iconCls:'icon-cut', handler:function(){ alert('cut') } },'-',{ text:'Save', iconCls:'icon-save', handler:function(){ alert('save') } }] }); 这个例子演示了如何冻结列。当用户水平滚动的时候,冻结列不能滚动出视图。 冻结列,你应该定义frozenColumns属性,这个属性和columns属性相似。 $('#tt').datagrid({ title:'Frozen Columns', iconCls:'icon-save', width:500, height:250, url:'datagrid_data.json', frozenColumns:[[ {field:'itemid',title:'Item ID',width:80}, {field:'productid',title:'Product ID',width:80}, ]], columns:[[ {field:'listprice',title:'List Price',width:80,align:'right'}, {field:'unitcost',title:'Unit Cost',width:80,align:'right'}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]] }); DataGrid列可以使用columns属性定义。如果你想动态改变列,也没问题。改变列你可以重新调用DataGrid方法平且传递新columns属性。 下面定义DataGrid组件 $('#tt').datagrid({ title:'Change Columns', iconCls:'icon-save', width:550, height:250, url:'datagrid_data.json', columns:[[ {field:'itemid',title:'Item ID',width:80}, {field:'productid',title:'Product ID',width:80}, {field:'attr1',title:'Attribute',width:200}, {field:'status',title:'Status',width:80} ]] }); 运行网页,我们看到: 通常,我们想改变列,你可以写这些代码: $('#tt').datagrid({ columns:[[ {field:'itemid',title:'Item ID',width:80}, {field:'productid',title:'Product ID',width:80}, {field:'listprice',title:'List Price',width:80,align:'right'}, {field:'unitcost',title:'Unit Cost',width:80,align:'right'}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]] }); 记住,我们已经定义其他属性,比如:url,width,height等,我们不需要重复定义他们,我们定义我们想改变的。 下面的例子是在easyui DataGrid中格式化列,如果单价低于20,则使用定义列formatter为红色文本。 格式化DataGrid列,我们应该设置formatter属性,这个属性是一个函数。格式化函数包括两个参数: Markup jQuery $('#tt').datagrid({ title:'Formatting Columns', width:550, height:250, url:'datagrid_data.json', columns:[[ {field:'itemid',title:'Item ID',width:80}, {field:'productid',title:'Product ID',width:80}, {field:'listprice',title:'List Price',width:80,align:'right', formatter:function(val,rec){ if (val < 20){ return '('+val+')'; } else { return val; } } }, {field:'unitcost',title:'Unit Cost',width:80,align:'right'}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]] }); 这个事例演示了如何在点击列头的时候排序 DataGrid中全部的列可以通过点击列头被排序。你可以定义可以被排序的列。默认的,列不能被排序除非你设置sortable属性为TRUE,下面是例子: 标记 jQuery $('#tt').datagrid({ title:'Sortable Column', width:550, height:250, url:'/demo4/data/getItems', columns:[[ {field:'itemid',title:'Item ID',width:80,sortable:true}, {field:'productid',title:'Product ID',width:80,sortable:true}, {field:'listprice',title:'List Price',width:80,align:'right',sortable:true}, {field:'unitcost',title:'Unit Cost',width:80,align:'right',sortable:true}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]], pagination:true, sortName:'itemid', sortOrder:'asc' }); 我们定义一些可排序的列,包括itemid,productid,listprice,unitcost等。attr1列和status列不能被排序。我们设置默认排序列:itemid,按asc(升序)排序。 当排序时, DataGrid发送两个参数到服务器: 我们使用etmvc framework 写后台服务器代码,首先定义数据模型 @Table(name="item") public class Item extends ActiveRecordBase{ @Id public String itemid; @Column public String productid; @Column public java.math.BigDecimal listprice; @Column public java.math.BigDecimal unitcost; @Column public String attr1; @Column public String status; } 写控制代码: public class DataController extends ApplicationController{ /** * get item data * @param page page number * @param rows page size * @param sort sort column field name * @param order sort order, can be 'asc' or 'desc' * @return JSON format string * @throws Exception */ public View getItems(int page, int rows, String sort, String order) throws Exception{ long total = Item.count(Item.class, null, null); List Map result.put("total", total); result.put("rows", items); return new JsonView(result); } } 我们使用MySQL数据库存储演示数据,下面是配置实例: domain_base_class=com.et.ar.ActiveRecordBase com.et.ar.ActiveRecordBase.adapter_class=com.et.ar.adapters.MySqlAdapter com.et.ar.ActiveRecordBase.driver_class=com.mysql.jdbc.Driver com.et.ar.ActiveRecordBase.url=jdbc:mysql://localhost/jpetstore com.et.ar.ActiveRecordBase.username=root com.et.ar.ActiveRecordBase.password=soft123456 com.et.ar.ActiveRecordBase.pool_size=0 部署 本教程显示了你如何放置checkbox列。使用checkbox,用户可以选定/取消数据行。 添加checkbox列,我们简单的添加列的checkbox属性,并且设置为true。代码像这样: $('#tt').datagrid({ title:'Checkbox Select', iconCls:'icon-ok', width:600, height:250, url:'datagrid_data.json', idField:'itemid', columns:[[ {field:'ck',checkbox:true}, {field:'itemid',title:'Item ID',width:80}, {field:'productid',title:'Product ID',width:80}, {field:'listprice',title:'List Price',width:80,align:'right'}, {field:'unitcost',title:'Unit Cost',width:80,align:'right'}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]], pagination:true }); 上面的代码,我们可以添加列的checkbox属性,然后他就会出现选择列。如果idField属性被设置,DataGrid的选择会被不同的页保持。 DataGrid内建分页能力是强大的,它比自定义相对容易。在这个教程,我们将要创建DataGrid并且在页面工具栏中添加一些自定义按钮。 标记 创建DataGrid $('#tt').datagrid({ title:'Load Data', iconCls:'icon-save', width:550, height:250, pagination:true, url:'datagrid_data.json', columns:[[ {field:'itemid',title:'Item ID',width:80}, {field:'productid',title:'Product ID',width:80}, {field:'listprice',title:'List Price',width:80,align:'right'}, {field:'unitcost',title:'Unit Cost',width:80,align:'right'}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]] }); 记住设置pagination属性为true产生页面工具栏。 自定义页面工具栏 var pager = $('#tt').datagrid('getPager'); //得到DataGrid页面 pager.pagination({ showPageList:false, buttons:[{ iconCls:'icon-search', handler:function(){ alert('search'); } },{ iconCls:'icon-add', handler:function(){ alert('add'); } },{ iconCls:'icon-edit', handler:function(){ alert('edit'); } }], onBeforeRefresh:function(){ alert('before refresh'); return true; } }); 我们得到DataGrid页,然后重新构建页面。我们隐藏页列表然后添加新按钮。 可编辑特征是最近添加的。它能让用户添加新行。用户也可以更新一行或多行。这个教程显示了如何创建使用行内编辑的DataGrid。 创建DataGrid $('#tt').datagrid({ title:'Editable DataGrid', iconCls:'icon-edit', width:660, height:250, singleSelect:true, idField:'itemid', url:'datagrid_data.json', columns:[[ {field:'itemid',title:'Item ID',width:60}, {field:'productid',title:'Product',width:100, formatter:function(value){ for(var i=0; i<products.length; i++){ if (products[i].productid == value) return products[i].name; } return value; }, editor:{ type:'combobox', options:{ valueField:'productid', textField:'name', data:products, required:true } } }, {field:'listprice',title:'List Price',width:80,align:'right',editor:{type:'numberbox',options:{precision:1}}}, {field:'unitcost',title:'Unit Cost',width:80,align:'right',editor:'numberbox'}, {field:'attr1',title:'Attribute',width:150,editor:'text'}, {field:'status',title:'Status',width:50,align:'center', editor:{ type:'checkbox', options:{ on: 'P', off: '' } } }, {field:'action',title:'Action',width:70,align:'center', formatter:function(value,row,index){ if (row.editing){ var s = 'Save '; var c = 'Cancel'; return s+c; } else { var e = 'Edit '; var d = 'Delete'; return e+d; } } } ]], onBeforeEdit:function(index,row){ row.editing = true; $('#tt').datagrid('refreshRow', index); }, onAfterEdit:function(index,row){ row.editing = false; $('#tt').datagrid('refreshRow', index); }, onCancelEdit:function(index,row){ row.editing = false; $('#tt').datagrid('refreshRow', index); } }); 使DataGrid可编辑,你应该添加editor属性到列中。editor告诉DataGrid如何编辑字和如何存储值。我们定义了三个editor:text,combobox,checkbox。 添加编辑功能 function editrow(index){ $('#tt').datagrid('beginEdit', index); } function deleterow(index){ $.messager.confirm('Confirm','Are you sure?',function(r){ if (r){ $('#tt').datagrid('deleteRow', index); } }); } function saverow(index){ $('#tt').datagrid('endEdit', index); } function cancelrow(index){ $('#tt').datagrid('cancelEdit', index); } 合并一些单元格经常是必要的,这个教程显示了你如何合并单元格: 合并单元格,简单的调用mergeCells方法并传递信息参数就能告诉DataGrid如何合并单元格了。当单元格合并时,每种东西在合并单元格中,除了第一个单元格,都会被隐藏。 创建DataGrid $('#tt').datagrid({ title:'Merge Cells', iconCls:'icon-ok', width:600, height:300, singleSelect:true, rownumbers:true, idField:'itemid', url:'datagrid_data.json', pagination:true, frozenColumns:[[ {field:'productid',title:'Product',width:100, formatter:function(value){ for(var i=0; i<products.length; i++){ if (products[i].productid == value) return products[i].name; } return value; } }, {field:'itemid',title:'Item ID',width:80} ]], columns:[[ {title:'Price',colspan:2}, {field:'attr1',title:'Attribute',width:150,rowspan:2}, {field:'status',title:'Status',width:60,align:'center',rowspan:2} ],[ {field:'listprice',title:'List Price',width:80,align:'right'}, {field:'unitcost',title:'Unit Cost',width:80,align:'right'} ]] }); 合并单元格 当数据被载入,我们在DataGrid中合并一些单元格,所以放置下列代码在onLoadSuccess函数中。 var merges = [{ index:2, rowspan:2 },{ index:5, rowspan:2 },{ index:7, rowspan:2 }]; for(var i=0; i<merges.length; i++) $('#tt').datagrid('mergeCells',{ index:merges[i].index, field:'productid', rowspan:merges[i].rowspan }); 建立窗口时很简单的,我们建立DIV标记: 然后测试就出出现一个窗口,我们不用写任何js代码 如果你想建立看不见的窗口,记住设置closed属性为true,你能调用open方法打开窗口: $('#win').window('open'); 这个演示,我们创建一个登陆窗口 默认的窗口有4个工具:collapsible(可折叠),minimizable(最小化),maximizable(最大化) 和closable(关闭),例如,我们定义下列窗口: 自定义工具,设置工具为true或者false。例如,我们希望窗口只有一个closeable工具,可以设置任何其他工具为false。我们可以定义工具属性在标记中或者jquery代码中。现在我们使用jquery代码来定义窗口: $('#win').window({ collapsible:false, minimizable:false, maximizable:false }); 如果你想添加自定义工具到窗口,我们可以使用tools属性,下面演示了我们添加自己的两个工具: $('#win').window({ collapsible:false, minimizable:false, maximizable:false, tools:[{ iconCls:'icon-add', handler:function(){ alert('add'); } },{ iconCls:'icon-remove', handler:function(){ alert('remove'); } }] }); 版式组件可以嵌套在窗口。我们可以创建复合版面窗口和事件而不用写任何JS代码.jquery-easyui框架在后台帮助我们进行渲染和改变工作。这个例子我们创建窗口,这个窗口有左右两部分。在左窗口,我们建立tree,在右窗口,我们建立tabs内容。 看上面的代码,我们只需使用HTML标记,然后复合版面和window就会显示。这个jquery-easyui框架,是容易和强大的。 对话框是特殊的窗口,它能包括上面的工具栏和下面的按钮。默认对话框不能改变大小,但是用户可以设置resizeable属性为true来使它可以被改变大小: 对话框非常简单,可以使用DIV标记创建: $('#dd').dialog({ title:'My Dialog', iconCls:'icon-ok', toolbar:[{ text:'Add', iconCls:'icon-add', handler:function(){ alert('add') } },'-',{ text:'Save', iconCls:'icon-save', handler:function(){ alert('save') } }], buttons:[{ text:'Ok', iconCls:'icon-ok', handler:function(){ alert('ok'); } },{ text:'Cancel', handler:function(){ $('#dd').dialog('close'); } }] }); 上面的代码创一个有工具栏和按钮的对话框。这是对话框、工具栏、内容和按钮的标准设置。 tree可以被从标记创建。easyui tree应该定义在ul元素中。无序列表ul元素提供了基本tree结构。每一个li元素被产生一个tree节点,子ul元素产生父tree节点。 例子: 创建tree: $('#tt').tree(); 显示: 创建异步tree,每一个tree节点必须有id属性,这个属性被传递到检索子节点数据。我们这里例子使用etmvc framework返回json数据。 创建HTML标记 创建jQuery代码 我们使用url属性来指向远程数据 $('#tt').tree({ url:'/demo2/node/getNodes' // The url will be mapped to NodeController class and getNodes method }); 数据模型 @Table(name="nodes") public class Node extends ActiveRecordBase{ @Id public Integer id; @Column public Integer parentId; @Column public String name; public boolean hasChildren() throws Exception{ long count = count(Node.class, "parentId=?", new Object[]{id}); return count > 0; } } 写控制代码 如果node是子,记住设置node状态为closed。 public class NodeController extends ApplicationController{ /** * get nodes, if the 'id' parameter equals 0 then load the first level nodes, * otherwise load the children nodes * @param id the parent node id value * @return the tree required node json format * @throws Exception */ public View getNodes(int id) throws Exception{ List if (id == 0){ // return the first level nodes nodes = Node.findAll(Node.class, "parentId=0 or parentId is null", null); } else { // return the children nodes nodes = Node.findAll(Node.class, "parentId=?", new Object[]{id}); } List for(Node node: nodes){ Map item.put("id", node.id); item.put("text", node.name); // the node has children, // set the state to 'closed' so the node can asynchronous load children nodes if (node.hasChildren()){ item.put("state", "closed"); } items.add(item); } return new JsonView(items); } } 数据配置实例 domain_base_class=com.et.ar.ActiveRecordBase com.et.ar.ActiveRecordBase.adapter_class=com.et.ar.adapters.MySqlAdapter com.et.ar.ActiveRecordBase.driver_class=com.mysql.jdbc.Driver com.et.ar.ActiveRecordBase.url=jdbc:mysql://localhost/mydb com.et.ar.ActiveRecordBase.username=root com.et.ar.ActiveRecordBase.password=soft123456 com.et.ar.ActiveRecordBase.pool_size=0 部署 本教程显示了如何添加节点。我们建立foods tree,这个tree包括vegetable、fruit节点。然后添加一些fruits到存在的fruit节点。 创建foods tree 首先,我们创建foods tree,代码像这样: 注意,tree组件被定义在UL标记,tree节点数据载入tree_data.json。 得到父节点 我们点击节点以选择fruit节点,我们添加一些fruits数据。调用getSelected方法来得到节点handle。 var node = $('#tt').tree('getSelected'); getSelect方法的返回值是一个js对象,包括id,text,attributes和target属性。target属性是DOM对象,引用了被选择的节点,使用append方法添加节点。 添加节点: var node = $('#tt').tree('getSelected'); if (node){ var nodes = [{ "id":13, "text":"Raspberry" },{ "id":14, "text":"Cantaloupe" }]; $('#tt').tree('append', { parent:node.target, data:nodes }); } 当我们添加一些fruits,可以看到: tree插件允许你创建checkbox tree,如果你点击节点的checkbox,被点击的节点信息得到下和上的继承。例如,点击tomato节点的checkbox,你可以看到vegetables节点现在只被选择一部分。 创建tree标记 创建checkbox tree using('tree', function(){ $('#tt').tree({ url:'tree_data.json', checkbox:true }); }); 我们使用easyloader以动态的载入tree插件。这个特征允许我们载入网页快一点。 这个教程显示如何发送表单。我们创建一个例子表单:name,email和phone字段。使用easyui表单插件,我们可以将表单变成ajax表单。表单发送所有的字段到后台处理服务,服务处理和发送一些数据返回前台网页。我们收到返回的数据后显示他。 创建form 转换成Ajax表单 我们写一些jquery代码使表单以ajax方式发送。注意,当数据返回时,form插件的success函数激发,所以我们可以处理一点事情。 $('#ff').form({ success:function(data){ $.messager.alert('Info', data, 'info'); } }); 服务处理: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String name = request.getParameter("name"); String email = request.getParameter("email"); String phone = request.getParameter("phone"); System.out.println(name+":"+email+":"+phone); PrintWriter out = response.getWriter(); out.print("Name:"+name+" out.flush(); out.close(); } 当我们点击发送按钮时,可以看到; 复合tree是一种复选框和下拉tree。它能像表单字段一样传递到服务端。在这个教程中,我们建立注册表单,这个表单有name,address,city字段。city字段是一个复合tree字段,用户可以下拉tree面板并选择指定city。 第一步:创建HTML标记 我们设置复合tree的url属性,这个字段可以被从服务器端检索tree。注意,字段的class名应该是easyui-combotree,所以我们不需要些任何js代码,复合tree字段就会自动生成。 第二步,创建对话框 我们在对话框中放置表单,这个对话框有发送和取消两个按钮。 $('#dlg').dialog({ title:'Register', width:310, height:250, buttons:[{ text:'Submit', iconCls:'icon-ok', handler:function(){ $('#ff').form('submit',{ success:function(data){ $.messager.alert('Info',data,'info'); } }); } },{ text:'Cancel', iconCls:'icon-cancel', handler:function(){ $('#dlg').dialog('close'); } }] }); 第三部,写服务程序 服务代码接受表单数据并返回: public class ProcessServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String address = request.getParameter("address"); String city = request.getParameter("city"); System.out.println(name); System.out.println(address); System.out.println(city); PrintWriter out = response.getWriter(); out.print("Name:"+name+",Address:"+address+",City ID:"+city); out.flush(); out.close(); } } 现在我们点击发送按钮,得到一个信息框,显示一些数据。 复合tree是非常简单的。我们做设置url属性以检索tree数据。 本教程将要显示你如何验证表单。easyui框架提供了validatebox插件以验证表单。在这个教程中,我们将要构建联系表单并且应用validatebox插件验证表单。你可以修改它适应自己的要求。 构建表单 让我们构建简单的内容的表单: name, email, subject 和message 字段: 我们添加class名为easyui-validatebox到input标记,所以input标记应用验证依照validType属性。 当出现错误的时候阻止表单发送 当用户点击发送按钮,我们应该阻止有错误的表单发送。 $('#ff').form({ url:'/demo7/ProcessServlet', onSubmit:function(){ return $(this).form('validate'); }, success:function(data){ alert(data); } }); 如果表单不可以,出现提示: 编写处理代码 最后,我们编写后台处理服务代码,这个代码显示在控制台上的接收参数并发送简单信息到前台页面。 public class ProcessServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String email = request.getParameter("email"); String subject = request.getParameter("subject"); String message = request.getParameter("message"); System.out.println("Name:"+name); System.out.println("Email:"+email); System.out.println("Subject:"+subject); System.out.println("Message:"+message); PrintWriter out = response.getWriter(); out.println("ok"); out.close(); } 10.1 Base EasyLoader Draggable Droppable Resizable 10.2 Layout Panel Tabs Accordion Layout 10.3 Menu and Button Menu LinkButton MenuButton SplitButton 10.4 Form Form ComboBox ComboTree NumberBox ValidateBox DateBox Calendar 10.5 Windows Window Dialog Messager 10.6 DataGrid and Tree Pagination DataGrid Tree Usage easyloader.base = '../'; // set the easyui base directory easyloader.load('messager', function(){ // load the specified module $.messager.alert('Title', 'load ok'); }); Options Properties Name Type Description Default modules object Predefined modules. 它表示是一个预定义的模块,没有默认值 locales object Predefined locales. 它表示是一个预定义的语言环境,没有默认值。 base string The easyui base directory, must end with '/'. 它说明是一个easyui的基础目录,必须以‘/’结束。 The base directory will be auto setted relative to easyload.js 该目录在被覆盖前自动设置为默认的easyloader.js。 theme string The name of theme that defined in 'themes' directory theme的名字就是定义的theme的目录, Default theme的名字就是定义的theme的目录, css boolean Defines if loading css file when loading module 当加载定义了该css文件的模块时就加载css文件, True 它的默认值是true。 locale string The locale name 表示locale的名字 Null 默认值为null。 timeout number Timeout value in milliseconds. Fires if a timeout occurs. 如果发生了超时,它的单位是毫秒, 2000 它的默认值是2000。 Defined locales Events Name Parameters Description onProgress name Fires when a module is loaded successfully. onLoad name Fires when a module and it's dependencies are loaded successfully. Methods Name Parameter Description load module, callback Load the specified module. When load success a callback function will be called. Usage Markup jQuery $('#dd').draggable(options); Options Override defaults with Properties Name Type Description Default proxy string,function A proxy element to be used 它的类型是string,function, null revert boolean If set to true, the element 该属性如果设置为true,当拖动停止后,该元素会回到起始的位置, False 默认值是false。 cursor string The css cursor when dragging. 表示拖动时光标的css Move 它的默认值是move。 deltaX number The dragged element position null默认值是null deltaY number The dragged element position null默认值是null handle selector The handle that start the null默认值是null disabled boolean True to stop draggable. 表示该元素停止拖动 false edge number The drag width in which can 0 axis string Defines the axis which the null Events Name Parameters Description onStartDrag e Fires when the target object onDrag e Fires during dragging. Return onStopDrag e Fires when the dragging Methods Name Parameter Description options none Return the options property. proxy none Return the drag proxy if the enable none Enable the drag action. disable none Disable the drag action. Page tags Add a new page 窗体顶端 窗体底端 Usage Markup jQuery $('#dd').droppable(options); Options Override defaults with Properties Name Type Description Default accept selector Determine which draggable null Events Name Parameters Description onDragEnter e,source Fires when the draggable onDragOver e,source Fires when the draggable onDragLeave e,source Fires when the draggable onDrop e,source Fires when the draggable Page tags Add a new page 窗体顶端 窗体底端 Usage Markup jQuery $('#rr').resizable(options); Options Override defaults with Properties Name Type Description Default disabled boolean True to disable resizing. false handles string Indicate the direction of n, e, s, w, ne, se, sw, nw, minWidth number The minimum width when 10 minHeight number The minimum height when 10 maxWidth number The maximum width when 10000 maxHeight number The maximum height when 10000 edge number The edge of border to be 5 Events Name Parameters Description onStartResize e Fires when start resizing. onResize e Fires during resizing. When onStopResize e Firest when stop resizing. If you Click here to edit contents of this page. Click Append Check View A few See Change View View/set Notify Something General Wikidot.com Wikidot.com Usage Markup Many panel properties can be jQuery To create a panel $('#p').panel(options); To create a panel with custom $('#p').panel({ title: 'My Panel', tools: [{ iconCls:'icon-new', handler:function(){alert('new')} },{ iconCls:'icon-save' handler:function(){alert('save')} }] }); To move panel to other position $('#p').panel('move',{ left:100, top:100 }); Dependencies none Options Override defaults with Properties Name Type Description Default title string The title text to display in null iconCls string A CSS class to display a null width number Set the panel width. auto height number Set the panel height. auto left number Set the panel left position. null top number Set the panel top position. null cls string Add a CSS class to the panel. null headerCls string Add a CSS class to the panel null bodyCls string Add a CSS class to the panel null style object Add a custom specification {} fit boolean When true to set the panel false border boolean Defines if to show panel true doSize boolean If set to true,the panel will true noheader boolean If set to true, the panel false content string The panel body content. null collapsible boolean Defines if to show false minimizable boolean Defines if to show false maximizable boolean Defines if to show false closable boolean Defines if to show closable false tools array Custom tools, every tool can [] collapsed boolean Defines if the panel is false minimized boolean Defines if the panel is false maximized boolean Defines if the panel is false closed boolean Defines if the panel is false href string A URL to load remote data and null cache boolean True to cache the panel true loadingMessage string When loading remote data show Loading… Events Name Parameters Description onLoad none Fires when remote data is onBeforeOpen none Fires before panel is opened, onOpen none Fires after panel is opened. onBeforeClose none Fires before panel is closed, onClose none Fires after panel is closed. onBeforeDestroy none Fires before panel is onDestroy none Fires after panel is onBeforeCollapse none Fires before panel is onCollapse none Fires after panel is onBeforeExpand none Fires before panel is onExpand none Fires after panel is onResize width, height Fires after panel is resized. onMove left,top Fires after panel is moved. onMaximize none Fires after the window has onRestore none Fires after the window has onMinimize none Fires after the window has Methods Name Parameter Description options none Return options property. panel none Return the panel object. header none Return the panel header body none Return the panel body object. setTitle title Set the title text of header. open forceOpen When forceOpen parameter set close forceClose When forceClose parameter set destroy forceDestroy When forceDestroy parameter refresh none Refresh the panel to load resize options Set panel size and do layout. move options Move the panel to a new maximize none Fits the panel winthin its minimize none Minimizing the panel. restore none Restores the maximized panel collapse forceCollapse Collapses the panel body. expand forceExpand Expand the panel body. When Usage Markup jQuery To create a tabs container $('#tt').tabs(options); To add a tab panel: $('#tt').tabs('add',{ title:'New Tab', content:'Tab Body', closable:true }); To get the selected tab panel and var pp = $('#tt').tabs('getSelected'); var tab = pp.panel('options').tab; // the corresponding tab object Dependencies Options Tabs Container Override defaults with Properties Name Type Description Default width number The width of tabs container. auto height number The height of tabs container. auto plain boolean True to render the tab strip false fit boolean True to set the size of tabs false border boolean True to show tabs container true scrollIncrement number The number of pixels to 100 scrollDuration number The number of milliseconds 400 Events Name Parameters Description onLoad panel Fires when an ajax tab panel finish onSelect title Fires when user select a tab onBeforeClose title Fires before the tab panel is onClose title Fires when user close a tab onAdd title Fires when a new tab panel is onUpdate title Fires when a tab panel is Methods Name Parameter Description options none Return the tabs options. tabs none Return all tab panels. resize none Resize the tabs container and add options Add a new tab panel, the close title Close a tab panel, title getTab title Get the specified tab panel. getSelected none Get the selected tab panel. select title Select a tab panel. exists title Indicate if the special panel update param Update the specified tab Tab Panel Properties Name Type Description Default title string The tab panel title text. content string The tab panel content. href string A URL to load remote content null cache boolean True to cache the tab panel, true iconCls string An icon CSS class to show on null closable boolean When set to true, the tab false selected boolean When set to true, tab tab false width number The width of tab panel. auto height number The height of tab panel. auto Usage Markup Accordion is a part of easyui framework for jQuery. It lets you define
your accordion component on web page more easily. jQuery $('#aa').accordion(options); Dependencies Options Container Options Name Type Description Default width number The width of accordion auto height number The height of accordion auto fit boolean Set to true to set the false border boolean Defines if to show the true animate boolean Defines if to show animation true Panel Options The accordion panel options is Name Type Description Default selected boolean Set to true to expand the false Events Name Parameters Description onSelect title Fires when a panel is onAdd title Fires when a new panel is onBeforeRemove title Fires before a panel is onRemove title Fires when a panel is Methods Name Parameter Description options none Return the options of panels none Get all panels. resize none Resize the accordion. getSelected none Get the selected panel. getPanel title Get the specified panel. select title Select the specified panel. add options Add a new panel. remove title Remove the specified panel. Usage Markup The layout panel must has one jQuery $('#cc').layout(options); Dependencies Options Layout Panel Options All the properties is defined on Name Type Description Default title string The layout panel title text. null region string Defines the layout panel border boolean True to show layout panel true split boolean True to show a split bar false icon string An icon CSS class to show a null href string An URL to load data from null Methods Name Parameter Description resize none Set the layout size. panel region Return the specified panel, collapse region Collapse the specified panel, expand region Expand the specified panel, Usage Markup jQuery To create a menu: $('#mm').menu(options); To show a menu on special $('#mm').menu('show', { left: 200, top: 100 }); Dependencies none Options Override defaults with Properties Name Type Description Default zIndex number Menu z-index style,increase 110000 left number Menu left position. 0 top number Menu top position. 0 href string Indicate a different page URL null Events Name Parameters Description onShow none Fires after menu is showed. onHide none Fires after menu is hidden. Methods Name Parameter Description show pos Show a menu on special hide none Hide a menu. linkbutton Usage Markup jQuery $('#btn').linkbutton(options); Dependencies none Options Override defaults with Properties Name Type Description Default id string The id attribute of this null disabled boolean True to disable the button false plain boolean True to show a plain effect. false text string The button text. '' iconCls string A CSS class to display a null Methods Name Parameter Description options none Return options property. disable none Disable the button enable none Enable the button Page tags Add a new page 窗体顶端 窗体底端 MenuButton Usage Markup jQuery $('#mb').menubutton({ menu: '#mm' }); Dependencies Options Override default with Name Type Description Default disabled boolean True to disable the button. false plain boolean True to show plain effect. false menu string A selector to create a null duration number Defines duration time in 100 Page tags Add a new page 窗体顶端 窗体底端 SplitButton Usage Markup jQuery $('#sb').splitbutton({ menu:'#mm' }); Dependencies Options Override default with Name Type Description Default disabled boolean True to disable the button. false plain boolean True to show plain effect. false menu string A selector to create a null duration number Defines duration time in 100 Usage Markup jQuery To make the form become ajax submit form $('#ff').form({ url:…, onSubmit: function(){ // do some check // return false to prevent submit; }, success:function(data){ alert(data) } }); To do a submit action $('#ff').form('submit', { url:…, onSubmit: function(){ // do some check // return false to prevent submit; }, success:function(data){ alert(data) } }); Dependencies none Options Properties Name Type Description Default url string The form action URL to submit null Events Name Parameters Description onSubmit none Fires before submit, return success data Fires when the form is onBeforeLoad param Fires before a request is onLoadSuccess data Fires when the form data is onLoadError none Fires when some errors occur Methods Name Parameter Description submit options Do the submit action, the options load data Load records to fill the clear none Clear the form data validate none Do the form fields combobox Usage Markup jQuery $('#cc').combobox(options); To create from remote data: $('#cc').combobox({ url:'combobox_data.json', valueField:'id', textField:'text' }); The remote data format sample: [{ "id":1, "text":"text1" },{ "id":2, "text":"text2" },{ "id":3, "text":"text3", "selected":true },{ "id":4, "text":"text4" },{ "id":5, "text":"text5" }] Dependencies Options Override defaults with Properties Name Type Description Default width number The width of the component. auto listWidth number The width of the drop down null listHeight number The height of the drop down null valueField string The underlying data value value textField string The underlying data field text editable boolean Defines if user can type text true disabled boolean Defines if to disable the false url string A URL to load list data from null data array The list data to be loaded. null required boolean Defines if the field should false missingMessage string Tooltip text that appears This field is required. Events Name Parameters Description onLoadSuccess none Fires when remote data is onLoadError none Fires when remote data load onSelect record Fires when user select a list onChange newValue, oldValue Fires when the field value is Methods Name Parameter Description destroy none Destroy the component. resize width Resize the component width. select value Select an item in the clear none Clear the component value. setValue param Set the specified value into getValue none Get the field value. getText none Get the field text. loadData data Load the locale list data. reload url Request the remote list data. disable none Disable the field. enable none Enable the field. combotree Usage Markup jQuery $('#cc').combotree({ url:'tree_data.json' }); Dependencies Options Override defaults with Properties Name Type Description Default width number The width of the component. auto treeWidth number The width of the tree list. null treeHeight number The height of the tree list. 200 url string A URL to load remote tree data. null data array The data to be loaded. null disabled boolean Defines if to disable the false required boolean Defines if the field should false missingMessage string Tooltip text that appears This field is required. Events Name Parameters Description onBeforeSelect node Fires before a tree node is onSelect node Fires when user select a tree onChange newValue, oldValue Fires when the field value is Methods Name Parameter Description destroy none Destroy the component. resize width Resize the component width. tree none Get the tree. clear none Clear the component value. setValue param Set the specified value into getValue none Get the field value. getText none Get the field text. loadData data Load the locale tree data. reload url Request the remote tree data disable none Disable the field. enable none Enable the field. Page tags Add a new page 窗体顶端 窗体底端 NumberBox Usage Markup jQuery $('#nn').numberbox(options); Dependencies Options Override defaults with Properties Name Type Description Default disabled boolean Defines if to disable the false min number The minimum allowed value. null max number The maximum allowed value. null precision number The maximum precision to 0 Methods validatebox Usage Markup jQuery $('#vv').validatebox(options) Validate Rule The validate rule is defined by To custom validate rule, override $.extend($.fn.validatebox.defaults.rules, minLength: { validator: function(value, param){ return value.length >= param[0]; }, message: 'Please enter at least {0} characters.' } }); Now you can use the minLength In the above code, we define a Dependencies none Options Override defaults with Properties Name Type Description Default required boolean Defines if the field should false validType string Defines the field valid type, null missingMessage string Tooltip text that appears This field is required. invalidMessage string Tooltip text that appears null Methods Name Parameter Description destroy none Remove and destroy the validate none Do the validation to isValid none call validate method and datebox Usage Markup jQuery $('#dd').datebox(options); Dependencies Options Override defaults with Properties Name Type Description Default currentText string The text to display for the Today closeText string The text to display for the Close disabled boolean When true to disable the false required boolean Defines if the field should false missingMessage string Tooltip text that appears This field is required. formatter function A function to format the parser function A function to parse a date Events Name Parameters Description onSelect date Fires when user select a Methods Name Parameter Description destroy none Destroy the component. disable none Disable the field. enable none Enable the field. calendar Usage Markup jQuery $('#cc').calendar(options); Options Override defaults with Properties Name Type Description Default width number The width of calendar 180 height number The height of calendar 180 fit boolean When true to set the calendar false border boolean Defines if to show the true weeks array The list of week to be ['S','M','T','W','T','F','S'] months array The list of month to be ['Jan', 'Feb', 'Mar', 'Apr', year number The year of calendar. current year(four digits) month number The month of calendar. current month, start with 1 current Date The current date. current date Events Name Parameters Description onSelect date Fires when user select a Usage Markup Many window properties can be jQuery To create a window: $('#win').window(options); To open a window: $('#win').window('open'); Dependencies Options Override defaults with Properties Many window properties can Name Type Description Default zIndex number Window z-index,increase from 9000 draggable boolean Defines if window can be true resizable boolean Defines if window can be resized. true shadow boolean If set to true,when window true modal boolean Defines if window is a modal true Window override some panel Name Type Description Default title string The window title text. New Window collapsible boolean Defines if to show true minimizable boolean Defines if to show true maximizable boolean Defines if to show true closable boolean Defines if to show closable true Events Window events is same as panel Methods Window methods is same as panel dialog Usage Markup jQuery $('#dd').dialog(options); Dependencies Options Override defaults with Properties Many properties can inhirit from window, Name Type Description Default title string The dialog title text. New Dialog collapsible boolean Defines if to show false minimizable boolean Defines if to show false maximizable boolean Defines if to show false resizable boolean Defined if the dialog can be false toolbar array The top toolbar of dialog, null buttons array The bottom buttons of dialog, null Events Dialog events is same as window Methods Dialog methods is same as window Page tags Add a new page 窗体顶端 窗体底端 Messager Dependencies Options Override defaults with Name Type Description Default ok string The Ok button text. Ok cancel string The Cancel button text. Cancel Methods Name Parameters Description $.messager.show options Show a message window on $.messager.alert title, msg, icon, fn Show an alert window. $.messager.confirm title, msg, fn Show a confirmation message $.messager.prompt title, msg, fn Show a message window with Ok Page tags Add a new page 窗体顶端 窗体底端 Pagination Usage Markup jQuery $('#pp').pagination(options); Dependencies Options Override defaults with Properties Name Type Description Default total number The total records, which 1 pageSize number The page size. 10 pageNumber number Show the page number when 1 pageList array User can change the page [10,20,30,50] loading boolean Defines if data is loading. false buttons array Defines custom buttons, each null showPageList boolean Defines if to show page list. true showRefresh boolean Defines if to show refresh true beforePageText string Show a label before the input Page afterPageText string Show a label after the input of {pages} displayMsg string Display a page information. Displaying {from} to {to} of Events Name Parameters Description onSelectPage pageNumber, pageSize Fires when user select a new onBeforeRefresh pageNumber, pageSize Fires before the refresh onRefresh pageNumber, pageSize Fires after refresh. onChangePageSize pageSize Fires when user change the Usage Markup jQuery $('#tt').datagrid(options); The DataGrid data format sample {"total":28,"rows":[{"productid":"FI-SW-01","unitcost":10.00,"status":"P","listprice":16.50,"attr1":"Large","itemid":"EST-1"}, {"productid":"K9-DL-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"}, {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Venomless","itemid":"EST-11"}, {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Rattleless","itemid":"EST-12"}, {"productid":"RP-LI-02","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Green Adult","itemid":"EST-13"}, {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":58.50,"attr1":"Tailless","itemid":"EST-14"}, {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"With tail","itemid":"EST-15"}, {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":93.50,"attr1":"Adult Female","itemid":"EST-16"}, {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":93.50,"attr1":"Adult Male","itemid":"EST-17"}, {"productid":"AV-CB-01","unitcost":92.00,"status":"P","listprice":193.50,"attr1":"Adult Male","itemid":"EST-18"}]} Dependencies Options DataGrid Properties Override default with Name Type Description Default title string The datagrid panel title null iconCls string A CSS class that will provide null border boolean True to show datagrid panel true width number The width of datagrid width. auto height number The height of datagrid auto columns array The datagrid columns config null frozenColumns array Same as the columns property, null striped boolean True to stripe the rows. false method string The method type to request post nowrap boolean True to display data in one true idField string Indicate which field is an null url string A URL to request data from null loadMsg string When loading data from remote Processing, please wait … pagination boolean True to show a pagination false rownumbers boolean True to show a row number false singleSelect boolean True to allow selecting only false fit boolean True to set size to fit it's false pageNumber number When set pagination property, 1 pageSize number When set pagination property, 10 pageList array When set pagination property, [10,20,30,40,50] queryParams object When request remote data, {} sortName string Defines which column can be null sortOrder string Defines the column sort asc remoteSort boolean Defines if to sort data from true editors object Defines the editor when predefined editors Column Properties The DataGrid Columns is an array columns:[[ {field:'itemid',title:'Item ID',rowspan:2,width:80,sortable:true}, {field:'productid',title:'Product ID',rowspan:2,width:80,sortable:true}, {title:'Item Details',colspan:4} ],[ {field:'listprice',title:'List Price',width:80,align:'right',sortable:true}, {field:'unitcost',title:'Unit Cost',width:80,align:'right',sortable:true}, {field:'attr1',title:'Attribute',width:100}, {field:'status',title:'Status',width:60} ]] Name Type Description Default title string The column title text. undefined field string The column field name. undefined width number The width of column. undefined rowspan number Indicate how many rows a cell undefined colspan number Indicate how many columns a undefined align string Indicate how to align the undefined sortable boolean True to allow the column can undefined checkbox boolean True to show a checkbox. undefined formatter function The cell formatter function. undefined sorter function The custom field sort undefined editor string,object Indicate the edit type. When undefined Editor Override default with Name Parameters Description init container, options Initialize and create the destroy elem Destroy the editor if getValue elem Get value from editor text. setValue elem, value Set value for editor. resize elem, width Resize the editor if For example, the text editor is $.extend($.fn.datagrid.defaults.editors, text: { init: function(container, options){ var input = $('').appendTo(container); return input; }, getValue: function(elem){ return $(elem).val(); }, setValue: function(elem, value){ $(elem).val(value); }, resize: function(elem, width){ var input = $(elem); if ($.boxModel == true){ input.width(width - } else { input.width(width); } } } }); Events Name Parameters Description onLoadSuccess data Fires when data is loaded onLoadError none Fires when some error occur onBeforeLoad param Fires before a request is onClickRow rowIndex, rowData Fires when user click a row, onDblClickRow rowIndex, rowData Fires when user dblclick a onSortColumn sort, order Fires when user sort a onSelect rowIndex, rowData Fires when user select a row, onUnselect rowIndex, rowData Fires when user unselect a onBeforeEdit rowIndex, rowData Fires when user start editing onAfterEdit rowIndex, rowData, changes Fires when user finish onCancelEdit rowIndex, rowData Fires when user cancel Methods Name Parameter Description options none Return the options object. getPager none Return the pager object. getPanel none Return the panel object. resize param Do resize and do layout. reload param Reload the rows. If the fixColumnSize none fix columns size. loadData data Load local data, the old rows getData none Return the loaded data. getRows none Return the current page rows. getRowIndex row Return the specified row getSelected none Return the first selected row getSelections none Return all selected rows, clearSelections none Clear all selections. selectAll none Select all current page rows. selectRow index Select a row, the row index selectRecord idValue Select a row by passing id unselectRow index Unselect a row. beginEdit index Begin editing a row. endEdit index End editing a row. cancelEdit index Cancel editing a row. refreshRow index Refresh a row. validateRow index validate the specified row, appendRow row Append a new row. deleteRow index Delete a row. getChanges type Get changed rows since the acceptChanges none Commits all the changes data rejectChanges none Rolls back all the changes mergeCells options Merge some cells to one cell, tree Usage Markup Tree can be definded in Tree can also be defined in an jQuery $('#tt').tree(options); Tree data format Every node can contains following Some example: [{ "id":1, "text":"Folder1", "iconCls":"icon-save", "children":[{ "text":"File1", "checked":true },{ "text":"Books", "state":"open", "attributes":{ "url":"/demo/book/abc", "price":100 }, "children":[{ "text":"PhotoShop", "checked":true },{ "id": 8, "text":"Sub Bookds", "state":"closed" }] }] },{ "text":"Languages", "state":"closed", "children":[{ "text":"Java" },{ "text":"C#" }] }] Dependencies none Options Override defaults with Tree Node is a javascript object Properties Name Type Description Default url string a URL to retrive remote data. null animate boolean Defines if to show animation false checkbox boolean Defines if to show the false data array The node data to be loaded. null Events Name Parameters Description onClick node Fires when user click a node, onDblClick node Fires when user dblclick a onBeforeLoad node, param Fires before a request is onLoadSuccess node, data Fires when data loaded onLoadError arguments Fires when data loaded fail, onBeforeExpand node Fires before node is onExpand node Fires when node is expanded. onBeforeCollapse node Fires before node is onCollapse node Fires when node is collapsed. Methods Name Parameter Description options none Return the options of tree. loadData data Load the tree data. reload none Reload tree data. getRoot none Get the root node, return getRoots none Get the root nodes, return getParent target Get the parent node, the getChildren target Get the children nodes, the getChecked none Get all checked nodes. getSelected none Get the selected node and isLeaf target Determine the specified node find id Find the specifed node and select target Select a node, the target check target Set the specified node to uncheck target Set the specified node to collapse target Collapse a node, the target expand target Expand a node, the target collapseAll none Collapse all nodes. expandAll none Expand all nodes. expandTo target Expand from root to specified append param Append some children nodes to toggle target Toggles expanded/collapsed remove target Remove a node and it's pop target Pop a node and it's children update param Update the specified node. 手机扫一扫 移动阅读更方便 你可能感兴趣的文章标记
· 7 窗口
· 8 Tree
· 8.1从标记创建tree
· 8.2创建异步Tree
· 8.3 添加节点
· 8.4 创建带有checkbox节点的tree
· 9 表单
Email:"+email+"
Phone:"+phone);Account Information
· 10 Documentation文档
§ 10.1.1 EasyLoader
The module parameter valid type are:
a single module name
an module array
a css file that end with '.css'
a js file that end with '.js'§ 10.1.2 Draggable
$.fn.draggable.defaults.
when dragging, when set to 'clone', a clone element is used as proxy. If a
function is specified, it must return a jQuery object.
will return to its start position when dragging stops.
x corresponding to current cursor当拖动时元素只在X轴上移动
y corresponding to current cursor当拖动时元素只在Y轴上移动
draggable. 表示该句柄开始拖动
start draggable. 表示该元素最小可拖动的范围
dragged elements moves on, available value is 'v' or 'h', when set to null
will move across 'v' and 'h' direction. 该元素在定义的轴上拖动 ,value为‘v’或者‘h’,当设置为null时就超过‘v’或者‘h’的范围。
start dragging.
false will not do dragging actually.
stops.
proxy property is setted.§ 10.1.3 Droppable
$.fn.droppable.defaults
element will be accepted
element is dragged enter. The source parameter indicate the dragged DOM
element.
element is dragged over. The source parameter indicate the dragged DOM
element.
element is dragged leave. The source parameter indicate the dragged DOM
element.
element is dropped. The source parameter indicate the dragged DOM element.
§ 10.1.4 Resizable
$.fn.resizable.defaults.
resizable,'n' is the north,'e' is the east,etc.
all
resizing.
resizing.
resizing.
resizing.
resized.
return false, the DOM element will not acts actual resize action.
want to discuss contents of this page - this is the easiest way to do it.
here to toggle editing of individual sections of the page (if possible). Watch
headings for an "edit" link when available.
content without editing the whole page source.
out how this page has evolved in the past.
and manage file attachments for this page.
useful tools to manage this Site.
pages that link to and include this page.
the name (also URL address, possibly the category) of the page.
wiki source for this page without editing.
parent page (used for creating breadcrumbs and structured layout).
administrators if there is objectionable content in this page.
does not work as expected? Find out what you can do.
Wikidot.com documentation and help section.
Terms of Service - what you can, what you should not etc.
Privacy Policy.§ 10.2.1 Panel
defined in
tools
$.fn.panel.defaults.
panel header.
16x16 icon in panel.
header.
body.
style to the panel.
size fit it's parent container.
border.
be resize and do layout when created.
header will not be created.
collapsible button.
minimizable button.
maximizable button.
button.
contain two properties: iconCls and handler
collapsed at initialization.
minimized at initialization.
maximized at initialization.
closed at initialization.
then display in the panel.
content that loaded from href.
a message in the panel.
loaded.
return false to stop the open.
return false to cancel the close.
destroyed, return false to cancel the destroy.
destroyed.
collapsed, return false to stop the collapse.
collpased.
expanded, return false to stop the expand.
expanded.
width: the new outer width
height: the new outer height
left: the new left postion
top: the new top position
been maximized.
been restored to its original size.
been minimized.
object.
to true, the panel is opened bypass the onBeforeOpen callback.
to true, the panel is closed bypass the onBeforeClose callback.
set to true, the panel is destroyed bypass the onBeforeDestroy callback.
remote data when href property is setted.
The options object contains following properties:
width: the new panel width
height: the new panel height
left: the new panel left position
top: the new panel top position
position. The options object contains following properties:
left: the new panel left position
top: the new panel top position
container.
back to its original size and position.
When forceCollapse is setted to true, the onBeforeCollapse event will not
be triggered.
forceExpand is setted to true, the onBeforeExpand event will not be
triggered.§ 10.2.2 tabs
its tab object:
$.fn.tabs.defaults.
without a background container image.
container to fit it's parent container.
border.
scroll each time a tab scroll button is pressed.
that each scroll animation should last.
loading remote data.
panel.
closed, return false to cancel this close action.
panel.
added.
updated.
do layout.
options parameter is a config object, see tab panel properties for more
details.
parameter indicate which panel to be closed.
is exists.
panel, the param parameter contains two properties:
tab: the tab panel to be updated.
options: the panel options.
to fill the tab panel.
valid when href property is setted.
tab panel title.
panel will show a closable button which can click to close the tab panel.
panel will be selected.§ 10.2.3 accordion
Accordion for jQuery
container.
container.
accordion container size fit it's parent container.
border.
effect when expand or collapse panel.
inhirited from panel,
many properties is defined in
Bellow is the addition properties:
panel.
selected.
added.
removed, return false to cancel the remove action.
removed.
accordion.§ 10.2.4 layout
'center' panel.
position, the value is one of following: north, south, east, west, center.
border.
which user can change the panel size.
icon on panel header.
remote site.
the 'region' parameter possible
values:'north','south','east','west','center'.
the 'region' parameter possible values:'north','south','east','west'.
the 'region' parameter possible values:'north','south','east','west'.
position:
$.fn.menu.defaults.
from it.
that can be displayed in the current browser window when clicked menu item.
position.
pos parameter have two properties:
left: the new left position.
top: the new top position.
$.fn.linkbutton.defaults.
component.
16x16 icon on left.
$.fn.menubutton.defaults.
corresponding menu.
milliseconds to show menu when hovering the button.
$.fn.splitbutton.defaults.
corresponding menu.
milliseconds to show menu when hovering the button.
false to prevent submit action.
submitted successfuly.
made to load data. Return false to cancel this action.
loaded.
while loading form data.
parameter is a object which contains following properties:
url: the action URL
onSubmit: callback function before submit
submit: callback function after submit successfuly
form.
The data parameter can be a string or a object type, when string acts as a
remote URL, otherwise acts as a local record
validation, return true when all fields is valid. The method is used with
the validatebox plugin.
$.fn.combobox.defaults.
list.
list.
name to bind to this ComboBox.
name to bind to this ComboBox.
directly into the field.
field.
remote.
be inputed.
when the text box is empty.
loaded successfully.
error.
item.
changed.
dropdown list.
the field. The 'param' parameter can be a value string or a javascript
object that contains two properties corresponding to valueField and
textField property.
$.fn.combotree.defaults.
field.
be inputed.
when the text box is empty.
selected, return false to cancel the selection.
node.
changed.
the field. The 'param' parameter can be a tree node id value or a
javascript object that contains two properties: id and text.
again.
$.fn.numberbox.defaults.
field.
display after the decimal separator.
using required and validType property, here are the rules already implemented:
characters allowed.
$.fn.validatebox.defaults.rules that defines a validator function and invalid
message. For example, to define a minLength valid type:
{
validtype:
input box that should be inputed at least 5 characters.
$.fn.validatebox.defaults
be inputed.
such as email, url, etc.
when the text box is empty.
when the content of text box is invalid.
component.
determine whether the content of text box is valid.
return the validation result, true or false.
$.fn.datebox.defaults
current day button.
close button.
field.
be inputed.
when the text box is empty.
date, the function take a 'date' parameter and return a string value.
string, the function take a 'date' string and return a date value.
date.
$.fn.calendar.defaults
component.
component.
size fit it's parent container.
border.
showed.
showed.
'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
date.
defined in markup, such as icon, title, etc.
$.fn.window.defaults.
inhirit from panel,
below is the window private properties.
it.
dragged.
show the shadow will show also.
window.
properties.
collapsible button.
minimizable button.
maximizable button.
button.
events, see panel events for more information.
methods, except the 'header' and 'body' method.
$.fn.dialog.defaults.
below is the dialog private properties:
collapsible button.
minimizable button.
maximizable button.
resized.
each tool contains: text, iconCls, disabled, handler etc.
each button contains: text, iconCls, handler etc.
events, see window events for more information.
methods, see window methods for more information.
$.messager.defaults.
right bottom of screen. The options parameter is a configuration object:
showType: Defines how the message window to be showed. Available values
are: null,slide,fade,show. Defaults to slide.
showSpeed: Defines the time in milliseconds message window finishs show.
Defaults to 600.
width: Defines the width of message window. Defaults to 250.
height: Defines the height of message window. Defaults to 100.
msg: The message text to be showed.
title: The title text to be showed on header panel.
timeout: If defines to 0, the message window will not close unless user
close it. Defines to unzero, the message window will be auto closed when
timeout.
Parameters:
title: The title text to be showed on header panel.
msg: The message text to be showed.
icon: The icon image to be showed. Available value are:
error,question,info,warning.
fn: The callback function triggered when window closed.
window with Ok and Cancel buttons. Parameters:
title: The title text to be showed on header panel.
msg: The message text to be showed.
fn(b): The callback function, when user click Ok button, pass a true value
to function, otherwise pass a false to it.
and Cancel buttons prompting user to enter some text. Parameters:
title: The title text to be showed on header panel.
msg: The message text to be showed.
fn(val): The callback function with a value parameter user entered.
$.fn.pagination.defaults.
should be setted when pagination is created.
pagination is created.
size. The pageList property defines how many size can be changed.
button contains two properties:
iconCls: the CSS class which will show a background image
handler: a handler function when button is clicked
button.
component.
component.
{total} items
page. callback function contains two parameter:
pageNumber: the new page number
pageSize: the new page size
button is clicked, return false to cancel the refresh action.
page size.
$.fn.datagrid.defaults.
text.
a background image to be used as the header icon.
border.
height.
object, see column properties for more details.
but the these columns will be frozen on left.
remote data.
line.
identity field.
remote site.
site, show a prompt message.
toolbar on datagrid bottom.
column.
one row.
parent container.
initialize the page number.
initialize the page size.
initialize the page size selecting list.
sending additional parameters also.
sorted.
order, can only be 'asc' or 'desc'.
server.
editing a row.
object, which element is an array too.
The element of element array is a config object, which defines every column
field.
code example:
should take up.
cell should take up.
column data. 'left','right','center' can be used.
be sorted.
take three parameter:
value: the field value.
rowData: the row record data.
rowIndex: the row index.
function, take three parameter:
a: the first field value.
b: the second field value.
order: the sort order, 'asc' or 'desc'.
string indicates the edit type, when object contains two properties:
type: string, the edit type, possible type is:
text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree.
options: object, the editor options corresponding to the edit type.
$.fn.datagrid.defaults.editors.
Every editor has following functions:
editor.
necessary.
necessary.
defined as following:
{
(input.outerWidth() - input.width()));
successfully.
to load remote data.
made to load data. If return false the load action will be canceled.
the parameters contains:
rowIndex: the clicked row index, start with 0
rowData: the record corresponding to the clicked row
row, the parameters contains:
rowIndex: the clicked row index, start with 0
rowData: the record corresponding to the clicked row
column, the parameters contains:
sort: the sort column field name
order: the sort column order
the parameters contains:
rowIndex: the selected row index, start with 0
rowData: the record corresponding to the selected row
row, the parameters contains:
rowIndex: the unselected row index, start with 0
rowData: the record corresponding to the unselected row
a row, the parameters contains:
rowIndex: the editing row index, start with 0
rowData: the record corresponding to the editing row
editing, the parameters contains:
rowIndex: the editing row index, start with 0
rowData: the record corresponding to the editing row
changes: the changed field/value pairs
editing a row, the parameters contains:
rowIndex: the editing row index, start with 0
rowData: the record corresponding to the editing row
'param' is specified, it will replace with the queryParams property.
will be removed.
index, the row parameter can be a row record or an id field value.
record or null.
when no record selected, am empty array will return.
start with 0.
value parameter.
return true when valid.
last commit. The type parameter indicate which type changed rows, possible
value is: inserted,deleted,updated,etc. When the type parameter is not assigned,
return all changed rows.
since it was loaded or since the last time acceptChanges was called.
data since it was created, or since the last time acceptChanges was called.
the options contains following properties:
index: the row index.
field: the field name.
rowspan: the rowspan count to be merged.
colspan: the colspan count to be merged.
element. The markup can defines leaf and children, bellow is an
example:
empty element:
properties:
to load remote data
'closed', default is 'open'. When set to 'closed', the node have children
nodes and will load them from remote site
node is checked selected.
can be added to a node
defines some children nodes
$.fn.tree.defaults.
which contains following properties:
the node.
checked.
bind to the node.
effect when node expand or collapse.
checkbox before every node.
the node parameter contains following properties:
id: the node id
text: the node text
checked: Whether the node is checked
attributes: the node custom attributes
target: the target clicked DOM object
node.
made to load data, return false to cancel this load action.
successfully.
the arguments parameter is same as the 'error' function of jQuery.ajax.
expanded, return false to cancel this expand action.
collapsed, return false to cancel this collapse action.
node object
node array.
target parameter indicate the node DOM object.
target parameter indicate the node DOM object.
return it, if no node selected return null.
is leaf, the target parameter indicate the node DOM object.
return the node object.
parameter indicate the node DOM object.
checked.
unchecked.
parameter indicate the node DOM object.
parameter indicate the node DOM object.
node.
a parent node. param parameter has two properties:
parent: DOM object, the parent node to append to, if not assigned, append
as root nodes.
data: array, the nodes data.
state of the node, the target parameter indicate the node DOM object.
children nodes, the target parameter indicate the node DOM object.
nodes, the method is same as remove but return the removed node data.
param has following properties:
target(DOM object, the node to be updated),id,text,iconCls,checked,etc.