Ext.Net学习笔记04:Ext.Net布局
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布局是我们使用最频繁的布局之一,好处自然不必多少,我们单来扒一扒它的不足,眼下就有两处:
- 不支持将多个控件设置为一个区域。例如我们想要在左侧停靠两个panel,那么我们必须要进行嵌套,因为ExtJS本身不支持同时将两个panel的region设置为west。
- 当上下两个区域存在的时候,左右区域不会占满。这个可以参照上面的例子,上下两个区域的宽度和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>
Ext.Net学习笔记04:Ext.Net布局的更多相关文章
- 【Ext.Net学习笔记】02:Ext.Net用法概览、Ext.Net MessageBus用法、Ext.Net布局
Ext.Net用法概览 Ext.Net还是很强大,如果运用熟练可以极大的提高编程效率.如果你也要学习Ext.Net,原文博主推荐书籍:<Ext.Net Web 应用程序开发教程>,是英文的 ...
- 【Ext.Net学习笔记】04:Ext.Net中使用数据、Ext.Net Store的用法、Ext.Net ComboBox用法
之前的几篇文章都是介绍Ext.Net较为基础的东西,今天的这一篇将介绍数据的一些用法,包括XTemplate绑定数据.Store(Modal.Proxy).ComboBox的用法等. XTemplat ...
- 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解
Ext.Net通过DirectEvents进行服务器端异步的事件处理.[Ext.Net学习笔记]02:Ext.Net用法概览.Ext.Net MessageBus用法.Ext.Net布局 中已经简单的 ...
- Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法
Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法 在上一篇笔记中我们介绍了Ext.Net的简单用法,并创建了一个简单的登录表单.今天我们将看一下如何更好是使用FormPanel ...
- 【Ext.Net学习笔记】06:Ext.Net GridPanel的用法(GridPanel 折叠/展开行、GridPanel Selection、 可编辑的GridPanel)
GridPanel 折叠/展开行 Ext.Net GridPanel的行支持折叠/展开功能,这个功能个人觉得还说很有用处的,尤其是数据中包含图片等内容的时候. 下面来看看效果: 使用行折叠/展开功能之 ...
- 【Ext.Net学习笔记】05:Ext.Net GridPanel的用法(包含Filter、Sorter、Grouping、汇总(Summary)的用法)
GridPanel是用来显示数据的表格,与ASP.NET中的GridView类似. GridPanel用法 直接看代码: <ext:GridPanel runat="server&qu ...
- 【Ext.Net学习笔记】01:在ASP.NET WebForm中使用Ext.Net
Ext.NET是基于跨浏览器的ExtJS库和.NET Framework的一套支持ASP.NET AJAX的开源Web控件,包含有丰富的Ajax运用,其前身是Coolite. 下载地址:http:// ...
- Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法
Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法 昨天在开发的时候遇到个小问题,就是如何将Grid的内容与Form一起发送到服务器端.默认情况下,表单(F ...
- Ext.Net学习笔记22:Ext.Net Tree 用法详解
Ext.Net学习笔记22:Ext.Net Tree 用法详解 上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat=&q ...
随机推荐
- Windows下搭建Nginx实现负载均衡
环境:本次测试,使用两台电脑,分别是 192.168.0.1,192.168.0.2. 其中Nginx也部署在 192.168.0.1 电脑上,所以 PC1 的IIS端口不能使用80,因为Nginx需 ...
- asp.net基础
这篇主要讲述以下基础知识: Request对象 Response对象 Server对象 Cookie对象 Application对象 ViewState对象 <%%>与<%=%> ...
- xilinx cpld XC95144XL 最小系统板
手上有几块xilinx的CPLD芯片XC95144,闲着无聊,打样的几块板子回来玩玩. 全部引脚引出,外接4个LED灯和一个Power灯,做成了50mm*50mm的板子,省钱(O(∩_∩)O). 下面 ...
- 【原】Docker
Docker 最近Docker火的不行不行的,正好有时间,找点资料学习一下. 1.Docker是一个轻量级虚拟化技术,比虚拟机有更多优势,简易安装.更快的速度.服务集成与开发流程自动化.跨平台.可移植 ...
- poj2192(搜索)
这个题目对于两个字符串A,B是否可以通过规则生成C. import java.util.Scanner; public class Main { public static void main(Str ...
- ACM编程技巧--代码片段
验证n是否是完全平方数 #include<math.h> double m=sqrt(n); if(floor(m+0.5)==m) printf("%d是完全平方数.\n&qu ...
- HW2.8
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- NDK编译路径问题
有点偷懒,在一个使用了jni工程里面稍微修改一下,编译另外一个jni工程. 代码写完后,Android.mk等文件也写好,但是ndk-build的时候提示Android NDK:Your APP_BU ...
- thinkphp3.2.3 版本使用redis缓存的时候无法使用认证
我在使用thinkphp3.2.3的时候 发现如果是使用redis缓存 设置了认证的redis能连接成功 却无法 set 操作 ,检查发现是没有认证导致的 $redis->auth这一步没有, ...
- 知道Form.Show()和Form.ShowDialog()的区别吗
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:知道Form.Show()和Form.ShowDialog()的区别吗.