ExtJS中的布局功能很强大,常用的布局有border、accordion、fit、hbox、vbox等,Ext.Net除了将这些布局进行封装以外,更是对border进行了一些非常实用的改进,让我们来看看吧。

Ext.Net布局概述

Ext.Net中的布局是对ExtJS布局的封装,可以用在panel控件,或者继承自panel的控件,例如window、form、gridpanel、treepanel等。首先来看一个简单的例子:

<ext:Window runat="server" ID="win1"
Title="Layout示例" Width="600" Height="400"
Layout="BorderLayout">
<Items>
<ext:Panel runat="server"
Region="West" Title="西"
Width="100" Border="true">
</ext:Panel>
<ext:Panel runat="server"
Region="East" Title="东"
Width="100" Border="true">
</ext:Panel>
<ext:Panel runat="server"
Region="North" Title="北"
Height="100" Border="true">
</ext:Panel>
<ext:Panel runat="server"
Region="South" Title="南"
Height="100" Border="true">
</ext:Panel>
<ext:Panel runat="server"
Region="Center" Title="中"
Border="true">
</ext:Panel>
</Items>
</ext:Window>

在这段代码中,我们定义了一个window,然后将它的布局设置为border布局,在它内部有五个panel,位置分别是上下左右中,效果如图:

如果你需要对border布局进行配置,可以在window标签内添加layout标签,例如:

<ext:Window runat="server" ID="win1"
Title="Layout示例" Width="600" Height="400"
Layout="BorderLayout">
<LayoutConfig

> <ext:BorderLayoutConfig Padding="10"></ext:BorderLayoutConfig> </LayoutConfig

>
<Items>……</Items>
</ext:Window>

不光的border布局这样使用,所有的布局都是这样使用的。通过上面的例子,我们能够对Ext.Net的布局有一个整体的认知,然后再去查看ExtJS的文档,针对不同的布局都有哪些配置项,该如何使用,相信会有很大的提高,我有一篇文章专门介绍ExtJS布局的:ExtJS 4.2 教程-08:布局系统详解

Ext.Net对border布局的改进

border布局是我们使用最频繁的布局之一,好处自然不必多少,我们单来扒一扒它的不足,眼下就有两处:

  1. 不支持将多个控件设置为一个区域。例如我们想要在左侧停靠两个panel,那么我们必须要进行嵌套,因为ExtJS本身不支持同时将两个panel的region设置为west。
  2. 当上下两个区域存在的时候,左右区域不会占满。这个可以参照上面的例子,上下两个区域的宽度和window的宽度相同,而左右两个区域的高度则受到它们的影响。如果要实现左右区域的高度占满整个window的高度,那么我们必须进行嵌套。

知道了这两个不足,来让我们看看Ext.Net对它们的改进吧。

Ext.Net支持多个控件使用相同的region

这个功能可以解决第一个问题。代码如下:

<ext:Window runat="server" ID="win1"
Title="Layout示例" Width="600" Height="400"
Layout="BorderLayout">
<Items>
<ext:Panel ID="Panel1" runat="server"
Region="West" Title="西"
Width="100" Border="true">
</ext:Panel>
<ext:Panel ID="Panel2" runat="server"
Region="West" Title="西"
Width="100" Border="true">
</ext:Panel>
<ext:Panel ID="Panel5" runat="server"
Region="Center" Title="中"
Border="true">
</ext:Panel>
</Items>
</ext:Window>

效果如下:

Ext.Net支持weight属性

weight属性,我理解为绘制时候的权重。在多个region中,优先绘制权重高的控件,它的高度(或宽度)将占满整个容器。有了这个属性,我们可以轻松应对第二个问题。

<ext:Window runat="server" ID="win1"
Title="Layout示例" Width="600" Height="400"
Layout="BorderLayout">
<Items>
<ext:Panel ID="Panel1" runat="server"
Region="West" Title="西"Weight="10"
Width="100" Border="true">
</ext:Panel>
<ext:Panel ID="Panel2" runat="server"
Region="South" Title="南"
Height="100" Border="true">
</ext:Panel>
<ext:Panel ID="Panel5" runat="server"
Region="Center" Title="中"
Border="true">
</ext:Panel>
</Items>
</ext:Window>

最新文章

  1. 数据库管理工具GUI - PremiumSoft Navicat Premium Enterprise 11.2.15 x86/x64 KEY
  2. yii事件
  3. docker 与 vmware 的区别
  4. Xshell中文版使用说明/下载
  5. webapi获取请求地址的IP
  6. this、call和apply
  7. 编写Word宏使选中的图片改变为固定宽度并保持纵横比
  8. 14.6.1 InnoDB Startup Configuration 启动配置
  9. Java+protobuf 实例
  10. Spring 3 MVC: Themes In Spring-Tutorial With Example---reference
  11. xml解析案例
  12. Nginx 显示502 Bad Gateway错误
  13. SOFA 源码分析 — 负载均衡和一致性 Hash
  14. Python大数据系列-01-关系数据库基本运算
  15. windows下安装rabbitmq的步骤详解
  16. .Net修改网站项目调试时的虚拟目录
  17. Ajax的优缺点及工作原理?
  18. PHP时间处理
  19. hdoj1072 Nightmare(bfs)
  20. Oracle数据库操作类及连接方法

热门文章

  1. wuzhicms常见函数方法的整理收集
  2. 使用Windows Azure创建Windows系统虚拟机-下
  3. POJ1811- Prime Test(Miller&ndash;Rabin+Pollard's rho)
  4. MySql中启用InnoDB数据引擎的方法
  5. PC-hosts 的使用 [可使电脑无法正常上网]
  6. java中服务器启动时,执行定时任务
  7. IOS GCD 使用(三)单例模式
  8. Windows Server 2012 R2中的网络诊断命令
  9. 学习笔记:暴力破解WIFI小软件
  10. Android+OpenCV 摄像头实时识别模板图像并跟踪