Extjs4.2 布局详解—Card布局

您可以使用卡布局来创建自己的自定义向导式屏幕。布局是一个标准的CardLayout,底部有一个工具栏,开发者必须提供实现向导业务逻辑的导航功能(请参阅basic.js中的代码以获取详细信息)。

此布局管理多个子组件, 每个都完全填满父容器, 而每次仅显示一个. 此布局样式多用于向导, 实现标签页布局等等. 此类应该通过`layout:'card' Ext.container.Container.layout属性来扩展和创建, 通常不需要直接通过类名关键字来创建.

CardLayout的核心方法是setActiveItem. 因为一次只能够显示一个面板, 从一个组件切换到另一个的唯一方式就是 调用setActiveItem传入目标面板(或ID或索引). 布局本身并不提供任何用户交互界面来处理这种切换, 必须由开发人员来实现.

通过调用布局的setActiveItem方法, 来实现切换容器中当前显示的面板:

下面是本人写的代码:按钮可以禁止,防止再次点击


<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title>Cord布局</title>
		<link rel="stylesheet" href="./ext-4.2.1.883/resources/css/ext-all.css">
		<script src="./ext-4.2.1.883/ext-all.js"></script>
		<script src="./ext-4.2.1.883/locale/ext-lang-zh_CN.js" type="text/javascript" charset="utf-8"></script>
	</head>

	<body>
		<div id="box"></div>
		<script type="text/javascript">
			Ext.onReady(function() {
				var panel = Ext.create('Ext.Window', {
					autoShow: true,
					title: 'window',
					width: 420,
					height: 400,
					layout: 'card',
					activeItem: 0,
					bbar: [
						'->',
						{
							id: 'card-prev',
							text: '«上一页',
							handler: function() {
								navigate('prev')
							}
						},
						{
							id: 'card-next',
							text: '下一页»',
							handler: function() {
								navigate('next')
							}
						}
					],
					items: [{
						id: 'card1',
						html: '第一页'
					}, {
						id: 'card2',
						html: '第二页'
					}, {
						id: 'card3',
						html: '第三页'
					}]
				});

				function navigate(direction) {
					var layout = panel.getLayout();
					if(!(direction === 'prev' && layout.layoutCount === 1)) {
						layout[direction]();
						Ext.getCmp('card-prev').setDisabled(!layout.getPrev());
						Ext.getCmp('card-next').setDisabled(!layout.getNext());
					}
				};
			});
		</script>
	</body>

</html>

如果你不想按钮被禁止,可以将函数navigate换成以下的:

function navigate(direction) {
					var layout = panel.getLayout();
					//					console.log(layout.getNext());
					if(layout.getPrev() && direction === 'prev') {
						layout.prev();
					} else if(layout.getNext() && direction === 'next') {
						layout.next();
				}
			};

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值