·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> Ext.NET-布局篇
前一篇介绍了Ext.NET基础知识,并对Ext.NET布局进行了简要的说明,本文中我们用一个完整的示例代码来看看Ext.NET的布局。
示例代码下载地址>>>>>
本文使用Tree、Grid应该是我们最为常用的控件,实现自适应的页面布局,
顶端:使用Panel,可折叠;左侧:使用TreePanel,可折叠;中间:使用GridPanel,主要区域,不可折叠;底部:使用GridPanel,可折叠;
先看看我们最终实现的效果
整体布局
全部折叠后的效果
当点击gridMain下的新增按钮弹出Window
新建WebFrom窗体,并在aspX文件中添加入下代码。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebFormDemo.Layouts.Default" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Ext.Net布局示例</title></head><body> <ext:ResourceManager runat="server" /></body></html>
关于<ext:ResourceManager runat="server" />
上一篇中已经讲过,它必须在<body></body>
中第一行,因为它负责为Web页面添加所需的js和CSS文件的引用。
在开始之前,我们先来看看一个最为简单的Viewport页面布局示例
为了演示需要我们为每个区域指定不同的背景颜色,在<head></head>
添加如下CSS样式
<style type="text/css"> .north { background-color: #FFFFFF; } .west { background-color: #00FFFF; } .center { background-color: #FF00FF; } .sourth { background-color: #FFFF00; }</style>
我们需要实现的是自适应浏览器窗口大小(占满整个<body></body>
),所以使用Viewport,首先在<ext:ResourceManager runat="server" />
下面添加如下代码
<ext:Viewport runat="server" Layout="BorderLayout"></ext:Viewport>
Viewport将自己呈现在<body></body>
中,并自动调整自身大小以适应整个浏览器窗口,一个Web页面只允许出现一个Viewport。关于Viewport的详细说明参见此处。我们将页面分为多个区域,并可以手动调整没个区域的大小,所以,Viewport的属性Layout="BorderLayout"
;
接着我们为Viewport添加子容器,每个子容器代表一个区域;
<ext:Viewport runat="server" Layout="BorderLayout"> <Items> <ext:Container runat="server" Region="North" Html="<h2>North</h2>" Cls="north"> </ext:Container> <ext:Container runat="server" Region="West" Html="<h2>West</h2>" Cls="west"> </ext:Container> <ext:Container runat="server" Region="Center" Html="<h2>Center</h2>" Cls="center"> </ext:Container> <ext:Container runat="server" Region="South" Html="<h2>Sourth</h2>" Cls="sourth"> </ext:Container> </Items></ext:Viewport>
运行效果如下
说明
- Viewport中的
<Items>...</Items>
,Items中只能定义Ext.NET提供的控件,而有时候我们需要写一些HTML或asp.net自带的控件,请使用'',如 <Content><div>...</div></Content>
- Container的Region属性指定了自身在Viewport中的位置,Region的值可以为
最终的ASPX代码如下
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebFormDemo.Layouts.Default" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Ext.Net布局示例</title> <style type="text/css"> .north { background-color: #FFFFFF; } .west { background-color: #00FFFF; } .center { background-color: #FF00FF; } .sourth { background-color: #FFFF00; } </style></head><body> <ext:ResourceManager runat="server" /> <ext:Viewport runat="server" Layout="BorderLayout"> <Items> <ext:Container runat="server" Region="North" Html="<h2>North</h2>" Cls="north"> </ext:Container> <ext:Container runat="server" Region="West" Html="<h2>West</h2>" Cls="west"> </ext:Container> <ext:Container runat="server" Region="Center" Html="<h2>Center</h2>" Cls="center"> </ext:Container> <ext:Container runat="server" Region="South" Html="<h2>Sourth</h2>" Cls="sourth"> </ext:Container> </Items> </ext:Viewport></body></html>
前面说过,Ext.NET是对ExtJs的封装,它将ASPX页面中的EXT.NET标记代码翻译成ExtJS,我们可以看看它为我们生成的ExtJs(javascript)代码
Ext.net.ResourceMgr.init({ id: "ctl01", theme: "neptune"});Ext.onReady(function () { Ext.create("Ext.container.Viewport", { renderTo: Ext.getBody(), items: [ { cls: "north", html: "<h2>North</h2>", xtype: "container", region: "north" }, { cls: "west", html: "<h2>West</h2>", xtype: "container", region: "west" }, { cls: "center", html: "<h2>Center</h2>", xtype: "container", region: "center" }, { cls: "sourth", html: "<h2>Sourth</h2>", xtype: "container", region: "south" } ], layout: "border" });});
使用浏览器的查看源码功能,若是Javascript代码没有格式化,请在Web.config文件中进行如下设置
<extnet theme="Crisp" scriptMode="Debug" sourceFormatting="true" licenseKey="** Ext.NET LICENSE KEY HERE **" initScriptMode="Linked"/>
详细的设置请参见上一篇中 WEBCONFIG中extnet 配置说明。
上面的简单示例演示了BorderLayout最基本的布局,接着我们来看看一个实例代码。删除上面为了演示添加的代码,我们最初的页面ASPX代码是这样的
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebFormDemo.Layouts.Default" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Ext.Net布局示例</title></head><body> <ext:ResourceManager runat="server" /> <ext:Viewport runat="server" Layout="BorderLayout"> <Items> </Items> </ext:Viewport></body>