`

ExtJs2.0学习系列(2)--Ext.Panel

阅读更多

上一篇文章ExtJs2.0学习系列(1)--Ext.MessageBox ,受到了大家的褒贬不一,还是有的朋友提出好的建议,在此表示感谢!
今天介绍extjs中的Panel组件。

//html代码
<div id="container">
    
</div>

 

//js代码
var p = new Ext.Panel({
        title: 
'My Panel',//标题
        collapsible:true,//右上角上的那个收缩按钮,设为false则不显示
        renderTo: 'container',//这个panel显示在html中id为container的层中
        width:400,
        height:
200,
        html: 
"<p>我是内容,我包含的html可以被执行!</p>"//panel主体中的内容,可以执行html代码
    });



因为panel组件的子类组件包括TabPanel,GridPanel,FormPanel,TreePanel组件,所以非常有必要介绍Panel组件的配置参数和相关的属性、方法。

//配置参数(只列举部分常用参数)
1.autoLoad:有效的url字符串,把那个url中的body中的数据加载显示,但是可能没有样式和js控制,只是html数据
2.autoScroll:设为true则内容溢出的时候产生滚动条,默认为false
3.autoShow:设为true显示设为"x-hidden"的元素,很有必要,默认为false

4.bbar:底部条,显示在主体内,//代码:bbar:[{text:'底部工具栏bottomToolbar'}],
5.tbar:顶部条,显示在主体内,//代码:tbar:[{text:'顶部工具栏topToolbar'}],
6.buttons:按钮集合,自动添加到footer中(footer参数,显示在主体外)//代码:buttons:[{text:"按钮位于footer"}]
7.buttonAlign:footer中按钮的位置,枚举值为:"left","right","center",默认为right

8.collapsible:设为true,显示右上角的收缩按钮,默认为false
9.draggable:true则可拖动,但需要你提供操作过程,默认为false

10.html:主体的内容
11.id:id值,通过id可以找到这个组件,建议一般加上这个id值
12.width:宽度
13.height:高度
13.title:标题

14.titleCollapse:设为true,则点击标题栏的任何地方都能收缩,默认为false.

15.applyTo:(id)呈现在哪个html元素里面
16.contentEl:(id)呈现哪个html元素里面,把el内的内容呈现
17.renderTo:(id)呈现在哪个html元素里面
//关于这三个参数的区别(个人认为:applyTo和RenderTo强调to到html元素中,contentEl则是html元素到ext组件中去):
英文如下(本人英语poor,不敢乱翻译):
contentEl 
- This config option is used to take existing content and place it in the body of a new panel. It is not going to be the actual panel itself. (It will actually copy the innerHTML of the el and use it for the body). You should add either the x-hidden or the x-hide-display CSS class to prevent a brief flicker of the content before it is rendered to the panel. 
applyTo 
- This config option allows you to use pre-defined markup to create an entire Panel. By entire, I mean you can include the header, tbar, body, footer, etc. These elements must be in the correct order/hierarchy. Any components which are not found and need to be created will be autogenerated. 
renderTo - This config option allows you to render a Panel as its created. This would be the same as saying myPanel.render(ELEMENT_TO_RENDER_TO); 
哪位大人帮忙翻译下...

考虑到入门,方法事件会在以后的文章中以实例穿插。
1.可拖动的panel实例
下面我们做个可拖动panel例子来熟悉下panel这个最基本的组件.

//html代码
..无..

 

//下面创建一个允许拖动的panel,但是拖动的结果不能保存
var p=new Ext.Panel({
    title: 
'Drag me',
    x: 
100,
    y: 
100,
    renderTo: Ext.getBody(),
//x,y,renderTo:Ext.getBody()初始化panel的位置
    floating: true,//true
    frame: true,//圆角边框
    width: 400,
    height: 
200,
    draggable:
true
}).show();
//在这里也可以不show()

但是还不能拖到其他的地方,我们需要改写draggable:

draggable: {
        insertProxy: 
false,//拖动时不虚线显示原始位置

        onDrag : function(e){
            
var pel = this.proxy.getEl();
            
this.x = pel.getLeft(true);
            
this.y = pel.getTop(true);//获取拖动时panel的坐标
        },

        endDrag : 
function(e){
            
this.panel.setPosition(this.x, this.y);//移动到最终位置
        }
    }

实现了可保存的拖动,如图:

拖动的时候阴影还在原位置,我们再在draggable中的onDrag事件中添加代码:

var s = this.panel.getEl().shadow;
            
if (s) {
                s.realign(
this.x, this.y, pel.getWidth(), pel.getHeight());
            }
//shadow的realign方法的四个参数,改变shadow的位置大小属性


最后这个可拖动的panel的代码为:

var p=new Ext.Panel({
    title: 
'Drag me',
    x: 
100,
    y: 
100,
    renderTo: Ext.getBody(),
    floating: 
true,
    frame: 
true,
    width: 
400,
    height: 
200,
    draggable: {
        insertProxy: 
false,

        onDrag : 
function(e){
            
var pel = this.proxy.getEl();
            
this.x = pel.getLeft(true);
            
this.y = pel.getTop(true);

            var s = this.panel.getEl().shadow;
            
if (s) {
                s.realign(
this.x, this.y, pel.getWidth(), pel.getHeight());
            }
        },
        endDrag : 
function(e){
            
this.panel.setPosition(this.x, this.y);
        }
    }
})
//效果图片我就不贴出来了


2.带顶部,底部,脚部工具栏的panel

var p=new Ext.Panel({
   id:
"panel1",
        title:
"标题",
        collapsible:
true,
        renderTo:
"container",
        closable:
true,
        width:
400,
        height:
300,
        tbar:[{text:
"按钮1"},{text:"按钮2"}], //顶部工具栏
        bbar:[{text:"按钮1"},{text:"按钮2"}],  //底部工具栏
        html:"内容",
        buttons:[{text:
"按钮1"},{text:"按钮2"}] //footer部工具栏
   });



我们已经在各种工具栏上添加了按钮,但是却没有激发事件,下面我们来添加按钮事件代码:

tbar:[{text:"按钮1",handler:function(){Ext.MessageBox.alert("我是按钮1","我是通过按钮1激发出来的弹出框!")}},{text:"按钮2"}],
//改写tbar,添加handler句柄,点击顶部工具栏上按钮1,弹出提示框,效果图大家想象下,就不贴出来了

当然,一般情况下,我们只要一个工具栏,这里只是为了演示!
3.panel工具栏

//添加下面的代码到panel配置参数中
tools:[{id:"save"},{id:"help"},{id:"up"},{id:"close",handler:function(){Ext.MessageBox.alert("工具栏按钮","工具栏上的关闭按钮时间被激发了")}}],
//id控制按钮,handler控制相应的事件
//
id的枚举值为:
toggle (collapsable为true时的默认值)
close
minimize
maximize
restore
gear
pin
unpin
right
left
up
down
refresh
minus
plus
help
search
save
print




关于panel今天就讨论到这里,欢迎批评!一起期待下一片文章.

分享到:
评论

相关推荐

    extJs 2.1学习笔记

    18. extJs 2.0学习笔记(Ext.Panel终结篇) 40 19. extJs 2.0学习笔记(事件注册总结篇) 45 20. extJs 2.0学习笔记(Ext.Panel篇一) 48 21. extJs 2.0学习笔记(Ext.Panel篇二) 50 22. extJs 2.0学习笔记(Ext.Panel篇三) ...

    Ext2 核心 API 中文详解 ExtJS2.0实用简明教程 ExtJS2.0教程 ExtJS2.0实用简明教程(easyjf) ext中文API+ sample

    "EXT"这个文件名可能是指包含了ExtJS 2.0的示例代码和中文API文档,这对于学习和调试非常有帮助。API文档详细列出了每个类、方法和属性的用法,示例代码则直观展示了如何在实际项目中应用这些API。 总的来说,通过...

    Extjs2.0 智能提示

    这个版本引入了许多预定义的组件类,如Ext.Panel、Ext.Window、Ext.form.FormPanel等。每个类都有自己的属性、方法和事件。智能提示在此起到了重要作用,它允许开发者在创建对象实例或调用方法时,快速了解类的结构...

    Extjs2.0中文文档

    Ext.js的官方文档是学习和参考该框架非常重要的资料,而Ext.js 2.0作为该框架的一个版本,其官方中文文档对于中文开发者来说是相当珍贵的学习资源。 文档涵盖了Ext.js 2.0的基础到高级特性,包括但不限于以下关键点...

    Extjs2.0的入门

    在这个入门介绍中,我们将重点关注ExtJS 2.0中的`Ext.MessageBox`,这是一个用于展示对话框的组件,常用于用户交互,如提示、确认和输入。 1. `Ext.MessageBox.alert()` `Ext.MessageBox.alert()`方法用于显示一个...

    Ext 学习总结 pdf版

    - **ExtJs2.0学习笔记(Ext.Panel篇一/二/三/四)**:这一系列内容分别讲述了`Ext.Panel`的不同方面,如布局管理、事件处理等。 - **ExtJs2.0学习笔记(组件总论篇)**:这是一个综合性的章节,概括了Ext JS 2.0中各种...

    ExtJs入门实例

    ### ExtJs2.0入门实例知识点详解 #### 1. Ext.MessageBox - **Ext.MessageBox.alert()** - **用途**: 显示一个简单的警告框。 - **参数**: - `title` (必需): 弹出框的标题。 - `msg` (必需): 显示的信息。 ...

    ext2.0 详解和API

    7. **丰富的图表组件**:EXT2.0提供了一系列图表组件,如柱状图、饼图、线图等,用于数据可视化。 **EXT2.0 API** EXT2.0的API是其强大的基础,它包含了大量预定义的类和方法,供开发者在构建应用时调用。API分为...

    extjs2----关于extjs 的使用,操作

    在标题"extjs2----关于extjs 的使用,操作"中,我们可以看出这是一份关于ExtJS 2.0版本的使用指南,主要涵盖了其基本操作和应用。描述中提到内容较为初级,适合初学者学习,这表明我们将探讨的是ExtJS的基础概念和...

    ExtJS2.0实用简明教程(chm)文档

    "ExtJS2.0实用简明教程(chm)文档"可能是这个压缩包中的主要资源,它提供了一个深入学习ExtJS 2.0的指南。CHM文件是Microsoft的 Compiled HTML Help 格式,通常包含一系列组织良好的网页,便于用户查阅和学习。这个...

    ExtJs2.0简明教程

    ### ExtJs2.0简明教程 #### 一、ExtJS简介 ExtJS是一款基于JavaScript的前端框架,它提供了一套完整的用户界面解决方案,能够帮助开发者快速构建高性能、跨浏览器的Web应用程序。ExtJS2.0是该框架的一个重要版本,...

    extJs+2.1学习笔记.pdf

    15. **extJs 2.0 学习笔记(Ext.Panel终结篇)** Panel是构建UI的基本组件,涵盖了布局、标题、工具栏等多种功能。掌握Panel的使用和配置,能创建复杂而灵活的界面。 16. **extJs 2.0 学习笔记(事件注册总结篇)*...

    extjs2.0 画的一个带查询条件和查询结果的页面

    在"extjs2.0 画的一个带查询条件和查询结果的页面"这个主题中,我们主要探讨如何使用ExtJS 2.0版本来设计一个具有搜索功能的用户界面。这个界面包括查询条件输入区域和展示查询结果的区域。 首先,我们需要了解...

    extjs2.0源文件

    EXTJS 2.3.0作为EXTJS 2.0系列的一个版本,可能包含了性能优化、新功能的添加以及已知问题的修复。虽然EXTJS现在已经发展到更高版本(如EXTJS 7.x),但EXTJS 2.0仍是一个重要的里程碑,对于理解EXTJS的发展历程和...

    ExtJS 2.0实用简明教程(chm)

    本教程“ExtJS 2.0实用简明教程”是针对这个版本进行深入学习的宝贵资源,适合有一定JavaScript基础并希望提升前端开发技能的人员。 该教程以`.chm`格式提供,这是一种Windows平台上的帮助文件格式,包含了索引、...

    Ext.net实现GridPanel拖动行、上移下移排序功能DEMO

    对于GridPanel中拖动选中行排序的实现,网上有不少ExtJs实现的例子,但是没有找到使用Ext.net实现的,正好最近有个需求要使用,干脆来写一个。 DEMO功能说明: 1、拖动GridPanel选中行到新位置排序。 2、在拖动结束...

Global site tag (gtag.js) - Google Analytics