`

Ext.Panel用法

 
阅读更多

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

//js代码
var p = new Ext.Panel({
        title: 'My Panel',//标题
        collapsible:true,//右上角上的那个收缩按钮,设为false则不显示
        renderTo: 'container',//这个panel显示在htmlidcontainer的层中
        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.idid值,通过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元素里面

1.可拖动的panel实例

//下面创建一个允许拖动的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());
            }
//shadowrealign方法的四个参数,改变shadow的位置大小属性

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 (collapsabletrue时的默认值)
close
minimize
maximize
restore
gear
pin
unpin
right
left
up
down
refresh
minus
plus
help
search
save
print




 

 

<!--EndFragment-->

  • 大小: 4.2 KB
  • 大小: 10.7 KB
  • 大小: 8.5 KB
  • 大小: 2.9 KB
分享到:
评论

相关推荐

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    动态加载本地数据到`Ext.Panel`通常涉及到异步请求,使用`Ajax`或`Store`的`load`方法,通过URL获取JSON或XML格式的数据,并将其渲染到面板内。 例如: ```javascript var panel = Ext.create('Ext.Panel', { ...

    Ext.Tree.Panel

    `Ext.Tree.Panel`是EXT JS库中的一个重要组件,用于展示层次结构的数据,通常用作树形菜单或文件系统目录的视图。这个组件是EXT JS框架中用于创建交互式、可扩展的树结构的工具。以下是对`Ext.Tree.Panel`相关知识的...

    Ext grid panel 滚动条位置不变

    通过上述方法,可以在Ext grid panel中实现实时数据刷新时滚动条位置不变的功能。这对于提高用户体验至关重要,尤其是在处理大量实时数据的情况下。开发者可以根据实际需求进一步优化代码,比如增加错误处理机制、...

    EXT.form组件

    5. `field`:`Ext.form.Field`是所有表单字段的基础类,提供了一般性的属性和方法,如验证和状态管理。 6. `fieldset`:`Ext.form.FieldSet`是用于组织和分组表单字段的容器,通常包含一个标题和可选的边框。 7. `...

    一个简单的Ext.Window中插入图片的例子

    在Ext JS这个强大的JavaScript框架中,`Ext.Window`是一个常用组件,用于创建浮动、可弹出的窗口。在Web应用程序中,我们...希望这个指南对你在使用`Ext.Window`插入图片时有所帮助,祝你在IT行业中取得更大的成就!

    ext使用--Panel和iframe联合使用时页面高度的解决方法

    通过以上方法,我们可以确保Panel根据IFrame内容的高度动态调整,避免滚动条的出现或内容被裁剪。在实际应用中,应根据项目需求和兼容性考虑选择最适合的解决方案。同时,确保对IFrame的安全性进行充分考虑,防止跨...

    EXT dojochina文本框示例Ext.form.TextField.rar

    1. **基本用法**:最简单的使用方式是在表单(`Ext.form.Panel`)中创建一个`Ext.form.TextField`,用于用户输入文本。例如: ```javascript var form = new Ext.form.Panel({ items: [{ xtype: 'textfield', ...

    Ext.js教程和Ext.js API

    3. **示例代码**:为常见用法提供代码片段,帮助开发者快速理解和使用特定功能。 4. **事件和监听器**:解释如何注册事件监听器以及触发的事件类型。 5. **数据绑定**:介绍如何使用Store、Model和Proxy进行数据管理...

    ExtJs选中var editor = new Ext.ux.grid.RowEditor详解

    本文将详细解析 `var editor = new Ext.ux.grid.RowEditor` 的用法及其相关的配置项。 #### 一、准备工作 首先,确保项目中已经包含了 RowEditor 所需的 CSS 和 JS 文件。这些文件通常位于项目的 `examples/ux` ...

    Extjs自动最大化panel

    这种功能通常通过设置Panel的布局和配置项来实现,比如使用`fit`布局,或者利用`autoWidth`和`autoHeight`属性,使Panel自动适应其父容器的大小。 在实现这种功能时,开发者可能需要关注以下几个关键知识点: 1. *...

    Ext TreePanel Checked Ext复选框树

    在IT领域,特别是前端开发中,`Ext JS`是一个广泛使用的JavaScript库,它提供了一整套组件和工具,用于构建富交互式的Web应用程序。`TreePanel`是`Ext JS`中的一个关键组件,用于展示层次结构的数据,就像操作系统中...

    Ext 中的Tree实现不同节点不同的右键菜单

    `Ext JS`是一个广泛使用的JavaScript库,它提供了丰富的组件和工具,帮助开发者构建功能强大的企业级应用。本篇将深入探讨如何在`Ext JS`中实现Tree组件的不同节点拥有不同的右键菜单,这对于提供定制化的用户体验是...

    ExtJs 带清空功能的日期组件

    Ext.create('Ext.form.Panel', { items: [{ xtype: 'clearabledatefield', fieldLabel: '日期' }], renderTo: Ext.getBody() }); ``` 以上就是如何在ExtJs中创建一个带有清空功能的日期组件的基本过程。通过...

    EXT dojochina Ext方法重写.rar

    例如,如果你要创建一个扩展了`Ext.grid.Panel`的新面板,并重写其`initComponent`方法: ```javascript Ext.define('MyGridPanel', { extend: 'Ext.grid.Panel', initComponent: function() { this.call...

    EXT dojochina Ext类静态方法.rar

    EXT dojochina Ext类静态方法是一个关于EXT框架在JavaScript中的使用的主题,主要聚焦于Ext类的静态方法。EXT是一个强大的前端开发框架,由Sencha公司开发,它提供了丰富的组件库,用于构建复杂的Web应用程序。在EXT...

    ext Panel+toolbar+button 实作带注释

    EXT JS的Panel、Toolbar和Button是构建复杂用户界面的基础元素,掌握它们的使用方法对于开发EXT JS应用至关重要。通过这个实作,你将能够了解EXT JS的基本工作原理,并为更深入的学习打下基础。记得实践是检验真理的...

    Ext.form.FieldSet的用法.pdf

    10. **applyTo**:你可以指定已存在文档中的元素 ID、DOM 节点或类似 DIV 的元素,`Ext.form.FieldSet` 将会使用这些元素作为其基础。使用 `applyTo` 时,不需要调用 `render()` 方法,且 `renderTo` 配置会被忽略。...

    Ext Js权威指南(.zip.001

    6.1.8 ext.domquery的使用方法 / 249 6.1.9 ext js选择器的总结 / 252 6.2 获取单一元素:ext.dom.element / 252 6.2.1 从错误开始 / 252 6.2.2 使用ext.get获取元素 / 253 6.2.3 使用ext.fly获取元素 / 256 ...

    ExtJs 学习笔记 Ext.Panle Ext.TabPanel Ext.Viewport第1/3页

    ExtJs是一个基于JavaScript的框架,用于构建前端交互式的Web应用程序。...学习和掌握Ext.Panel、Ext.TabPanel和Ext.Viewport的使用方法,可以帮助我们更好地设计和实现富有交互性和视觉吸引力的Web应用程序界面。

    ext tree 分页

    在EXT JS框架中,"ext tree 分页"是一种优化技术,用于处理大量数据时避免页面卡顿的问题。在EXT JS的树形组件(TreePanel)中,如果一次性加载所有节点,特别是当树结构非常深或者节点数量巨大时,不仅会消耗大量...

Global site tag (gtag.js) - Google Analytics