extjs面板使用

目标:

      介绍Panel布局的各种类

      Panel布局类在VS中的介绍

内容:

      Panel布局类有10种:容器布局,自适应布局,折叠布局,卡片式布局,锚点布局,绝对位置布局,表单布局,列布局,表格布局,边框布局

      1,Ext.layout.ContainerLayout 容器布局

      提供容器作为布局的基础逻辑,通常会被扩展而不通过new 关键字直接创建,一般作为默认布局存在  

      2,Ext.layout.FitLayout 自适应布局

      使用layout:'fit' 将使面板子元素自动充满容器,如果有多个子面板也只会第一个会被显示

      

      3,Ext.layout.AccordionLayout 折叠布局  (很常有哦!!!)

       扩展自适应布局,layout:'accordion' 它包含了多个子面板,任何时候都只有一个子面板处于打开状态,每个面板都有展开和收缩的功能

       

      4 ,Ext.layout.CardLayout 卡片式布局  (也很有用的哦!!)

       扩展自适应布局,layout:'card' 它包含了多个子面板,只有一个面板处于显示状态,它用来制作向导或标签页,使用setActiveItem来激火面板

        

      5,Ext.layout.AnchorLayout 锚点布局

       根据容器的大小为其所包含的子面板进行定位的布局 layout:'anchor'  分为:百分比,偏移,参考边 三种方式的定位

       

      6,Ext.layout.AbsoluteLayout 绝对位置布局

       根据面板中配置 x/y 坐标进行定位,layout:'absolute' 坐标值支持使用固定值和百分比两种形式

       

      7,Ext.layout.FormLayout  表单布局

       用来管理表单字段的显示,内制了表单布局,提供了表单提交,读取等表单功能,layout:'form'

       

     8, Ext.layout.ColumnLayout 列布局

      多列风格的布局格式,每一列的宽度都可以通过百分比和数值确定宽度,layout:'column'

     9, Ext.layout.TableLayout 表格布局

      可以指定列数,跨行,跨列,可以创建出复杂的表格布局 layout:'table'

      

    10, Ext.layout.BorderLayout 边框布局

     该布局包含多个面板,是一个面向应用的UI风格的布局,它包含5个部分:east,south,west,north,center,layout:'border' 通过region来配置面板

      

   

     viewport的应用:作为浏览器窗口的整个显示部分,其有着panel的功能,但是一定要注意的是一个页面只有一个viewport

       

    示例分析部分

复制代码
Extjs面板布局介绍
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Ext6.aspx.cs" Inherits="EXT1.Ext6"%>
2 
3  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4 
5  <html xmlns="http://www.w3.org/1999/xhtml">
6 <head runat="server">
7 <title>第六课,Extjs中面板布局的应用</title>
8 <link href="ext-3.2.0/resources/css/ext-all.css" rel="stylesheet" type="text/css"/>
9 <script src="ext-3.2.0/adapter/ext/ext-base.js" type="text/javascript"></script>
10 <script src="ext-3.2.0/ext-all.js" type="text/javascript"></script>
11 <script type="text/javascript">
12 function Read1() {
13 var MyPanel=new Ext.Panel({
14 title:'自适应布局',
15 width:250,
16 height:200,
17 x:300,
18 y:50,
19 floating:true,
20 renderTo:id1,
21 frame:true,
22 layout:'fit',
23 items:[
24 {
25 title:"面板一",
26 html:"面板一内容"
27 },
28 {
29 title:'面板二',
30 html:'面板二内容'
31 }
32 ]
33 });
34 }
35 function Read2() {
36 var Mypanel=new Ext.Panel({
37 layout:'accordion',
38 title:'折叠布局',
39 renderTo:id1,
40 width:250,
41 height:300,
42 x:300,
43 y:50,
44 floating:true,
45 frame:true,
46 collapsible:true,
47 titleCollapse:true,
48 layoutConfig:{
49 activeOnTop:false,
50 fill:true,
51 hideCollapseTool:false,
52 titleCollapse:true,
53 animate:true
54 },
55 items:[
56 {
57 title:"面板一",
58 html:"面板一内容"
59 },
60 {
61 title:'面板二',
62 html:'面板二内容'
63 },
64 {
65 title:'面板3',
66 html:'面板3内容'
67 },
68 {
69 title:'面板4',
70 html:'面板4内容'
71 },
72 {
73 title:'面板5',
74 html:'面板5内容'
75 }
76 
77 ]
78 });
79 }
80 function Read3() {
81 var Mypanel=new Ext.Panel({
82 layout:'card',
83 title:'卡片布局',
84 renderTo:id1,
85 width:250,
86 height:300,
87 x:300,
88 y:50,
89 floating:true,
90 frame:true,
91 collapsible:true,
92 titleCollapse:true,
93 activeItem:0,
94 
95 items:[
96 {
97 title:"面板一",
98 html:"面板一内容",
99 id:'p1'
100 },
101 {
102 title:'面板二',
103 html:'面板二内容',
104 id:'p2'
105 },
106 {
107 title:'面板三',
108 html:'面板三内容',
109 id:'p3'
110 }
111 ],
112 buttons:[
113 {
114 text:'上一页',
115 handler:change
116 },
117 {
118 text:'下一页',
119 handler:change
120 }
121 ]
122 });
123 function change(btn) {
124 var index=Number(Mypanel.layout.activeItem.id.substring(1));
125 if (btn.text=='上一页') {
126 index-=1;
127 if (index<1) {
128 index=1;
129 }
130 }
131 else
132 {
133 index+=1;
134 if (index>3) {
135 index=3;
136 
137 }
138 Mypanel.layout.setActiveItem('p'+index);
139 }
140 }
141 function Read4() {
142 var Mypanel=new Ext.Panel({
143 title:'锚点布局',
144 renderTo:id1,
145 frame:true,
146 width:300,
147 height:200,
148 x:300,
149 y:50,
150 floating:true,
151 collapsible:true,
152 titleCollapse:true,
153 layout:'anchor',
154 items:[{
155 anchor:'50%,50%',
156 draggable:true,
157 title:'子面板'
158 },
159 {
160 anchor:'-10,-10',
161 title:'子面板2'
162 }]
163 });
164 
165 function Read5() {
166 var Mypanel=new Ext.Panel({
167 title:'绝对位置布局',
168 renderTo:id1,
169 frame:true,
170 width:300,
171 height:200,
172 x:300,
173 y:50,
174 floating:true,
175 collapsible:true,
176 titleCollapse:true,
177 layout:'absolute',
178 items:[{
179 x:'10%',
180 y:10,
181 width:100,
182 height:50,
183 title:'子面板'
184 },
185 {
186 x:90,
187 y:70,
188 width:100,
189 height:50,
190 title:'子面板2'
191 }] 
192 });
193 }
194 function Read6() {
195 var MyPanel=new Ext.Panel({
196 layout:'form',
197 title:'表单布局',
198 renderTo:id1,
199 frame:true,
200 width:300,
201 height:200,
202 x:300,
203 y:50,
204 floating:true,
205 collapsible:true,
206 titleCollapse:true,
207 defaultType:'textfield',
208 labelSeparator:':',
209 defaults:{msgTarget:'side'},
210 items:[
211 {
212 fieldLabel:'用户名称',
213 allowBlank:false
214 },
215 {
216 fieldLabel:'用户密码',
217 allowBlank:false
218 }
219 ]
220 });
221 }
222 function Rand7() {
223 Ext.QuickTips.init();
224 var MyPanel=new Ext.Panel({
225 title:'列布局',
226 renderTo:id1,
227 frame:true,
228 width:300,
229 height:200,
230 x:300,
231 y:50,
232 floating:true,
233 layout:'column',
234 items:[
235 {
236 title:'面板1',
237 width:100,
238 height:100
239 },
240 {
241 title:'面板2',
242 width:100,
243 height:100
244 }
245 ]
246 });
247 }
248 function Read8() {
249 var Mypanel=new Ext.Panel({
250 title:'表格布局',
251 renderTo:id1,
252 frame:true,
253 width:400,
254 height:300,
255 x:350,
256 y:50,
257 floating:true,
258 collapsible:true,
259 titleCollapse:true,
260 draggable:{ 
261 insertProxy: false,//拖动时不虚线显示原始位置 
262 onDrag : function(e){ 
263 var pel =this.proxy.getEl(); 
264 this.x = pel.getLeft(true); 
265 this.y = pel.getTop(true);//获取拖动时panel的坐标 
266 var s =this.panel.getEl().shadow; 
267 if (s){ 
268 s.realign(this.x, this.y, pel.getWidth(), pel.getHeight()); 
269 
270 }, 
271 endDrag : function(e){ 
272 this.panel.setPosition(this.x, this.y);//移动到最终位置 
273 
274 },
275 layout:'table',
276 layoutConfig:{
277 columns:3
278 },
279 items:[
280 {
281 title:'面板1',
282 html:'面板一内容',
283 rowspan:2,
284 height:80
285 },
286 {
287 title:'面板2',
288 html:'面板2内容',
289 colspan:2
290 
291 },
292 {
293 title:'面板3'
294 },
295 {
296 title:'面板4'
297 }
298 
299 ]
300 });
301 }
302 function Read9() {
303 var Mypanel=new Ext.Viewport({
304 layout:"border"
305 items:[
306 
307 region:"north"
308 height:50
309 title:"顶部面板" 
310 }, 
311 {
312 region:"south"
313 height:50
314 title:"底部面板"
315 }, 
316 {
317 region:"center"
318 title:"中央面板"
319 }, 
320 {
321 region:"west"
322 width:100
323 title:"左边面板"
324 }, 
325 {
326 region:"east"
327 width:100
328 title:"右边面板"
329 
330 
331 });
332 }
333 function Read10() {
334 var b =new Ext.Button({ 
335 id:"show-btn"//定义按钮的ID 
336 text:"弹出按钮"//定义按钮的标题 
337 renderTo:document.body//将弹出按钮渲染到窗体上 
338 }); 
339 var button = Ext.get('show-btn'); 
340 var win; 
341 button.on('click', function() { 
342 //创建TabPanel 
343 var tabs =new Ext.TabPanel({ 
344 region: 'center'//border布局,将页面分成东,南,西,北,中五部分,这里表示TabPanel放在中间 
345 margins: '3 3 3 0'
346 activeTab: 0//当前选项卡是第1个(从0开始) 
347 defaults: { 
348 autoScroll: true 
349 }, 
350 items: 
351 [
352 
353 title: 'Bogus Tab'
354 html: "第一个Tab的内容." 
355 }, 
356 
357 title: 'Another Tab'
358 html: "我是另一个Tab" 
359 }, 
360 
361 title: 'Closable Tab'
362 html: "这是一个可以关闭的Tab"
363 closable: true//显示关闭按钮 
364 }
365 
366 
367 }); 
368 
369 //定义一个Panel 
370 var nav =new Ext.Panel({ 
371 title: 'Navigation'
372 region: 'west'//放在西边,即左侧 
373 split: true//设置为分割 
374 width: 200
375 
376 collapsible: true//允许伸缩 
377 margins: '3 0 3 3'
378 cmargins: '3 3 3 3' 
379 }); 
380 
381 //如果窗口第一次被打开时才创建 
382 if (!win) { 
383 win =new Ext.Window({ 
384 title: 'Layout Window'
385 closable: true//显示关闭按钮 
386 width: 600
387 
388 height: 350
389 
390 border : false
391 plain: true
392 layout: 'border'
393 closeAction:'hide'
394 items: [nav, tabs]//把上面创建的panel和TabPanel放在window中,并采用border方式布局 
395 }); 
396 
397 
398 
399 win.show(button); 
400 
401 }); 
402 };
403 Ext.onReady(Read10);
404 </script>
405 </head>
406 <body>
407 <form id="form1" runat="server">
408 <div id="id1">
409 
410 </div>
411 </form>
412 </body>
413 </html>
posted @ 2012-09-03 10:59  西瓜霜  阅读(291)  评论(0编辑  收藏  举报