布局(Layout)

示例一 示例二

使用方法:

创建控制面板

1. 使用标签创建控制面板

使用标签创建控制面板十分简单,只须要对<div>标签引用'easyui-panel'类。

<div id="p" class="easyui-panel" title="My Panel"  style="width:500px;height:150px;padding:10px;background:#fafafa;"  data-options="iconCls:'icon-save',closable:true,collapsible:true,minimizable:true,maximizable:true">
<p>panel content.</p>
<p>panel content.</p>
</div>

2. 使用脚本创建控制面板

下面的代码将创建一个工具栏在右上方的控制面板。

<div id="p" style="padding:10px;">
    <p>panel content.</p>
    <p>panel content.</p>
</div>
$('#p').panel({
  width:500,
  height:150,
  title: 'My Panel',
  tools: [{
    iconCls:'icon-add',
    handler:function(){alert('new')}
  },{
    iconCls:'icon-save',
    handler:function(){alert('save')}
  }]
});

移动控制面板

调用'move'方法可以将控制面板移动到一个新的位置。

$('#p').panel('move',{
  left:100,
  top:100
});

载入内容

下面的代码将使用ajax载入控制面板内容并且在载入成功时显示信息。

$('#p').panel({
    href:'content_url.php',
    onLoad:function(){
        alert('loaded successfully');
    }
});  

属性:

名称 类型 描述 默认值
id string(字符串) 当前pannel的id属性。 null
title(标题) string(字符串) 显示在控制面板顶部的标题文本。 null
iconCls(图标CSS类) string(字符串) 在控制面板标题前显示一个16x16大小图标的CSS类。 null
width(宽度) number(数字) 设置控制面板的宽度。 auto
height(高度) number(数字) 设置控制面板的高度。 auto
left(左边距) number(数字) 设置控制面板的左边距。 null
top(顶边距) number(数字) 设置控制面板的顶边距。 null
cls(类) string(字符串) 对控制面板引用一个CSS类。 null
headerCls(头部css类) string(字符串) 对控制面板头部引用一个CSS类。 null
bodyCls(主体类) string(字符串) 对控制面板主体引用一个CSS类。 null
style(样式) object(对象) 给控制面板添加一个自定义的样式。
<div class="easyui-panel" style="width:200px;
    height:100px"  data-options="style:{borderWidth:2}">
</div>
{}
fit(铺满浏览器) boolean(布尔型) 设置为true时,控制面板的大小将铺满它所在的容器(浏览器)。
<div style="width:200px;height:100px;padding:5px">
    <div class="easyui-panel" style="width:200px;height:100px"
         data-options="fit:true,border:false">
        Embedded Panel
    </div>
</div>
false
border(边框) boolean(布尔型) 定义是否显示控制面板边框。 true
doSize(调整大小) boolean(布尔型) 如果设置为true,在控制面板被创建时将被重置大小并且自动布局。 true
noheader(无头部) boolean(布尔型) 如果设置为true,控制面板头部将不被创建。 false
content(内容) string(字符串) 控制面板主体的内容。 null
collapsible(可折叠) boolean(布尔型) 定义是否显示可折叠按钮。 false
minimizable(最小化) boolean(布尔型) 定义是否显示最小化按钮。 false
maximizable(最大化) boolean(布尔型) 定义是否显示最大化按钮。 false
closable(关闭) boolean(布尔型) 定义是否显示关闭按钮。 false
tools(工具栏) array(数组) 自定义工具栏,每一个工具都可以包含2个属性:图标类 和句柄。 []
collapsed(已折叠) boolean(布尔型) 定义控制面板初始化时是否折叠。 false
minimized(已最小化) boolean(布尔型) 定义控制面板初始化时是否最小化。 false
maximized(已最大化) boolean(布尔型) 定义控制面板初始化时是否最大化。 false
closed(已关闭) boolean(布尔型) 定义控制面板初始化时是否关闭。 false
href(超链接) string(字符串) 载入远程数据的超链接,载入的数据将显示在控制面板中。 null
cache(缓存) boolean(布尔型) 如果设置为true,从超链接载入的数据将被缓存。 true
loadingMessage(载入时信息) string(字符串) 在正在载入远程数据时显示在控制面板中的信息。 Loading…
extractor(提取器) function(函数) 定义如何从ajax返回值中提取内容,返回被提取的数据。
extractor: function(data){
	var pattern = /<body[^>]*>((.|[\n\r])*)<\/body>/im;
	var matches = pattern.exec(data);
	if (matches){
		return matches[1];	// only extract body content
	} else {
		return data;
	}
}
 

事件:

名称 参数 描述
onLoad none 在远程数据被载入时触发。
onBeforeOpen none 在控制面板被打开之前触发,返回false将停止打开。
onOpen none 在控制面板被打开之后触发。
onBeforeClose none 在控制面板被关闭之前触发,返回false将取消关闭。
onClose none 在控制面板被关闭后触发。
onBeforeDestroy none 在控制面板被注销前触发,返回false将取消注销。
onDestroy none 在控制面板被注销后触发。
onBeforeCollapse none 在控制面板被折叠之前触发,返回false将停止折叠。
onCollapse none 在控制面板被折叠之后触发。
onBeforeExpand none 在控制面板被扩展之前触发,返回false将停止扩展(这里应该是指扩展区域,宽、高等)。
onExpand none 在控制面板被扩展之后触发。
onResize width, height 在控制面板被缩放后触发。
width: 新的控制面板宽度
height:新的控制面板高度
onMove left,top 在控制面板被移动后触发。
left:新的控制面板左边距
top:新的控制面板顶边距
onMaximize none 在控制面板被最大化后触发
onRestore none 在控制面板被重置为初始大小后触发。
onMinimize none 在控制面板被最小化后触发。

方法:

名称 参数 描述
options none 返回选项属性。
panel none 返回控制面板对象。
header none 返回控制面板头对象。
body none 返回控制面板主体对象。
setTitle title 设置控制面板头部的标题文本。
open forceOpen 当参数forceOpen设置为true时,控制面板将被打开,不受onBeforeOpen回调函数的约束。
close forceClose 当参数forceClose设置为true时, 控制面板将被打开,不受onBeforeClose回调函数的约束。
destroy forceDestroy 当参数forceDestroy设置为true时,控制面板将被打开,不受onBeforeDestroy回调函数的约束。
refresh href 当href属性被设置时,刷新控制面板以载入远程数据。
resize options 这是控制面板的尺寸并且进行布局。options对象包含以下2个属性:
width: 新的控制面板宽度
height: 新的控制面板高度
left: 新的控制面板左边距
top: 新的控制面板顶边距
move options 移动控制面板到一个新的位置。options对象包含以下2个属性:
left: 新的控制面板左边距
top: 新的控制面板顶边距
maximize none 使控制面板铺满整个容器。
minimize none 最小化控制面板。
restore none 使最大化的控制面板重置为其初始化时的大小和位置。
collapse animate 折叠控制面板主体。
expand animate 扩展控制面板主体。
示例一 示例二

依赖关系:

使用方法:

创建选项卡

1. 使用HTML标签创建选项卡

使用HTML标签创建选项卡十分简单,不需要写任何javascript代码,只需要<div>标签引用'easyui-panel'类。每个选项卡面板都可以使用闭合的<div>标签对创建,使用方法跟创建控制面板一样。

<div id="tt" class="easyui-tabs" style="width:500px;height:250px;">
    <div title="Tab1" style="padding:20px;display:none;">
        tab1
    </div>
    <div title="Tab2" closable="true" style="overflow:auto;padding:20px;display:none;">
        tab2
    </div>
    <div title="Tab3" iconCls="icon-reload" closable="true" style="padding:20px;display:none;">
        tab3
    </div>
</div>

2. 使用脚本创建选项卡

下面的代码演示如何使用脚本创建选项卡,当该选项卡被选择时将会触发'onSelect'事件。

$('#tt').tabs({
    border:false,
    onSelect:function(title){
        alert(title+' is selected');
    }
});

添加一个选项卡面板

//添加一个选项卡面板
$('#tt').tabs('add',{
    title:'New Tab',
    content:'Tab Body',
    closable:true
});

获取当前被选择的选项卡

//获取当前被选择的选项卡以及相应的选项卡对象
var pp = $('#tt').tabs('getSelected');
var tab = pp.panel('options').tab;    //相应的选项卡对象  

属性:

名称 类型 描述 默认值
width(宽度) number(数字) 选项卡所在容器(控制面板)的宽度。 auto
height(高度) number(数字) 选项卡所在容器(控制面板)的高度。 auto
plain(简洁模式) boolean(布尔型) 如果设置为true,将不显示控制面板背景。 false
fit(铺满浏览器) boolean(布尔型) 设置为true时,选项卡的大小将铺满它所在的容器(浏览器)。 false
border(边框) boolean(布尔型) 如果设置true,将显示选项卡所在容器(控制面板)的边框。 true
scrollIncrement(滚动增量) number(数字) 选项卡滚动条每次滚动的像素值。 100
scrollDuration(滚动时间) number(数字) 每次滚动持续的时间,单位为毫秒。 400
tools(工具栏) array(数组) 控制面板右侧的工具栏,每个工具选项都跟链接按钮一样。 null

事件:

名称 参数 描述
onLoad panel 当一个选项卡完成ajax远程载入对象时触发。
onSelect title 当用户选择一个选项卡时触发。
onBeforeClose title 在一个选项卡被关闭之前触发,返回false将取消关闭。
onClose title 在用户关闭一个选项卡面板后触发。
onAdd title 在一个选项卡面板被添加后触发。
onUpdate title 在一个选项卡面板被更新后触发。
enableTab which 启用一个特定的 tab panel,'which' 参数可以是tab panel的title(标题)或者是index(下标)。
$('#tt').tabs('enableTab', 1);	//启用第二个tab panel
$('#tt').tabs('enableTab', 'Tab2');//启用标题为'Tab2'的tab panel
这个方法从1.3版本以后可用。
disableTab which 禁用特定的 tab panel, 'which' 参数可以是tab panel的title(标题)或者index(下标)。
$('#tt').tabs('disableTab', 1);	//禁用第二个tab pane
这个方法从1.3版本以后可用。
onContextMenu e, title 在一个选项卡面板被鼠标右键单击后触发。

方法:

名称 参数 描述
options none 返回选项卡属性对象。
tabs none 返回所有的选项卡面板。
resize none 重置选项卡容器(控制面板)大小并且自动布局。
add options 添加一个新的选项卡面板,options参数是一个可以配置的对象,查看选项卡控制面板属性获取更多信息。
close title 关闭一个选项卡面板,title参数表示哪个选项卡将被关闭。
getTab title 获取特定的选项卡面板名称。
getSelected none 获取被选择的选项卡面板名称。
select title 选择一个选项卡面板。
exists title 验证一个特定的选项卡面板是否存在。
update param 更新特定的选项卡面板,param参数包含2个属性:
tab: 将被更新的选项卡。
options: 选项卡相关配置项。
选项卡面板:
名称 类型 描述 默认值
title(标题) string(字符串) 选项卡面板的标题。  
content(内容) string(字符串) 选项卡面板的内容。
href(超链接) string(字符串) 从超链接载入远程内容到选项卡 面板。 null
cache(缓存) boolean(布尔型) 设置为true将缓存选项卡面板,当href(超链接)属性被设置时有效。 true
iconCls(图标CSS类) string(字符串) 一个显示选项卡面板标题图标的CSS类。 null
width(宽度) number(数字) 选项卡面板的宽度。 auto
height(高度) number(数字) 选项卡面板的高度。 auto

其他一些属性

名称 类型 描述 默认值
closable(可关闭) boolean(布尔型) 当这是为true时,选项卡面板将会显示一个关闭按钮,
点击该按钮将关闭选项卡。
false
selected(默认选项卡) boolean(布尔型) 当设置为true时,将会默认显示该选项卡下的内容。 false
示例一 示例二

依赖关系:

使用方法:

创建可伸缩面板

使用html标签创建可伸缩面板,只须要对<div>标签引用'easyui-accordion'类。

使用HTML标签创建选项卡十分简单,不需要写任何javascript代码,只需要<div>标签引用'easyui-panel'类。每个选项卡面板都可以使用闭合的<div>标签对创建,使用方法跟创建控制面板一样。

<div id="aa" class="easyui-accordion" style="width:300px;height:200px;">
    <div title="Title1" iconCls="icon-save" style="overflow:auto;padding:10px;">
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
    <p>Accordion is a part of easyui framework for jQuery.
    It lets you define your accordion component on web page more easily.</p>
    </div>
    <div title="Title2" iconCls="icon-reload" selected="true" style="padding:10px;">
        content2
    </div>
    <div title="Title3">
        content3
    </div>
</div>

在后面将介绍如何改变或者重建可伸缩面板以及修改一些特性。

$('#aa').accordion({
    animate:false
}); 

添加一个选项卡面板

//添加一个选项卡面板
$('#tt').tabs('add',{
    title:'New Tab',
    content:'Tab Body',
    closable:true
});

刷新可伸缩面板的内容

调用'getSelected'方法获取当前面板(的名称),接着可以调用控制面板的'refresh'方法来载入新的内容。

var pp = $('#aa').accordion('getSelected'); //获取当前选择的可伸缩面板
if (pp){
    pp.panel('refresh','new_content.php');  //调用'refresh'方法载入新内容
}  

容器属性(可伸缩面板所在的容器,通常称为‘盒子’)

名称 类型 描述 默认值
width(宽度) number(数字) 可伸缩面板所在容器的宽度。 auto
height(高度) number(数字) 可伸缩面板所在容器的高度。 auto
fit(铺满浏览器) boolean(布尔型) 如果设置为true,可伸缩面板所在容器将铺满它所在的父容器(浏览器) false
border(边框) boolean(布尔型) 定义是否显示边框。 true
animate(动画效果) boolean(布尔型) 定义当延伸或者折叠面板时是否显示动画效果。 true

可伸缩面板属性

可伸缩面板继承控制面板的属性,以下是额外的属性:

名称 类型 描述 默认值
selected(被选择) boolean(布尔型) 设置为true将默认展开面板。 false

事件:

名称 参数 描述
onSelect title 当一个可伸缩面板被选择时触发。
onAdd title 在一个新面板被添加时触发。
onBeforeRemove title 在可伸缩面板被移除之前触发,返回false将取消移除。
onRemove title 在一个可伸缩面板被移除时触发。

方法:

名称 参数 描述
options none 返回容器属性对象。
panels none 获取所有的面板。
resize none 重置可伸缩面板。
getSelected none 获取被选择的面板。
getPanel title 获取特定的可伸缩面板。
getPanelIndex panel 得到特定的panel的下标。
下面的示例代码展示如何得到一个选中的panel的下标(index)。
var p = $('#aa').accordion('getSelected');
if (p){
	var index = $('#aa').accordion('getPanelIndex', p);
	alert(index);
}
这个方法从1.3版本以后可用。
select title 选择特定的面板。
add options 添加一个先的可伸缩面板。
remove title 移除特定的面板。

依赖关系:

使用方法:

创建布局面板

使用HTML标签创建布局面板,只须要对<div>标签引用'easyui-layout'类。

<div id="cc" class="easyui-layout" style="width:600px;height:400px;">
    <div region="north" title="North Title" split="true" style="height:100px;"></div>
    <div region="south" title="South Title" split="true" style="height:100px;"></div>
    <div region="east" iconCls="icon-reload" title="East" split="true" style="width:100px;"></div>
    <div region="west" split="true" title="West" style="width:100px;"></div>
    <div region="center" title="center title" style="padding:5px;background:#eee;"></div>
</div>

在整个页面创建布局面板。

<body class="easyui-layout">
<div region="north" title="North Title" split="true" style="height:100px;"></div>
<div region="south" title="South Title" split="true" style="height:100px;"></div>
<div region="east" iconCls="icon-reload" title="East" split="true" style="width:100px;"></div>
<div region="west" split="true" title="West" style="width:100px;"></div>
<div region="center" title="center title" style="padding:5px;background:#eee;"></div>
</body>  

折叠布局面板

$('#cc').layout();
//折叠左边的面板
$('#cc').layout('collapse','west');

属性

名称 类型 描述 默认值
title(标题) string(字符串) 布局面板的标题。 null
region(区域) string(字符串) 定义布局面板的位置(方向),可以取下列值的其中之一:north, south, east, west, center。  
border(边框) boolean(布尔型) 设置为true将显示布局面板的边框。 true
split(分隔条) boolean(布尔型) 如果设置为true将显示一个分隔条,用户可以拖动分隔条来改变布局面板的尺寸。 false
iconCls(图标CSS类) string(字符串) 一个用来显示布局面板头部图标的css类。 null
href(超链接) string(字符串) 一个用来从远程站点载入数据的超链接。 null

方法:

名称 参数 描述
resize none 设置布局面板的尺寸大小。
panel region 返回特定的布局面板,'region'参数的可取值为:
'north','south','east','west','center'。
collapse region 折叠特定的布局面板,'region'参数的可取值为:'north','south','east','west'。
expand region 延伸特定的布局面板,'region'参数的可取值为:'north','south','east','west'。