1,面板由以下几个部分组成,

  一个顶部工具栏(tbar)、一个底部工具栏(bbar)、面板头部(header)、面板尾部(bottom)、面板主区域(body)几个部分组成。
  面板类中还内置了面板展开、关闭等功能,并提供一系列可重用的工具按钮使得我们可以轻松实现自定义的行为,面板可以放入其它任何容器中,面板本身是一个容器,他里面又可以包含各种其它组件。
  面板的类名为Ext.Panel,其xtype为panel

2,知识点:

  render()方法 ,后面的参数可以是 一个字符串代表Id,或dom节点,或Ext.get()返回的Element

  handler()方法,当按钮点击时,会触发handler方法

面板主区域body,可以放 html 字符串,也可以放 items指定的组件

我们可以在面板中动态添加、更改、删除组件或者里面的html. (参考下面的例子)

3, 示例

Ext.onReady(function(){
    //Panel 面板 是可视化的容器组件
    var panel=new Ext.Panel({
        width:500,
        height:400,
        collapsible:true, //可展开和收缩
        tools:[{id:"save"},
               {id:"print",handler:function(){
                   window.print();
               }}],
        //面板头部 header
        title:'我的面板',
        //顶部工具栏 toptoolbar
        tbar:[{text:"保存"},"-",{text:"关闭"}], //使用 - 表示分割符
        //底部工具栏 bottomtoolbar
        bbar:[{text:"添加内容",
            //当按钮点击时,会触发handler方法
            handler:function(){
                panel.add({title:'面板3'});
                panel.doLayout(); //调用重新布局,才会显示出来面板

                // 删除panel里面的东西
                // remove的参数为 组件Id或者组件本身
                var p2=panel.getComponent(1);// 获取Item中的组件

                panel.remove(p2);

            }},{text:"更新内容",
                handler:function(){
                    panel.load("new.html");
                    panel.body.update("<h1>新内容</h1>"+new Date());
            }},
            ],
        //尾部区域 bottom
        buttons:[{text:"确定"},{text:"取消"}],
        //底部按钮的对齐方式
        buttonAlign:"center",
        //面板的主区域 body
        //html:"<h1>面板的body区域</h1>"
        //加载其它页面的内容
        //autoLoad:"aaa.html"
        //放其它的组件  xtype说明是什么组件,在面板中如果不指定,它的xtype就是panel
        items:[{xtype:"button",text:"按钮"},
               {title:"面板2",height:200,border:false}],

    });

    //render()方法 ,后面的参数可以是 一个字符串代表Id,或dom节点,或Ext.get()返回的Element
//    panel.render(document.body);
//    panel.render("p");
    panel.render(Ext.get("p"));

});

02_Ext_Panel的更多相关文章

随机推荐

  1. shell流程控制--循环语句

    #!/bin/bash ### for循环,数字段形式 echo 'for 循环,数字段形式' ..} do echo $i done ### for 循环,双括号形式 echo 'for 循环,双括 ...

  2. 【2016北京集训测试赛(八)】 crash的数列 (思考题)

    Description 题解 题目说这是一个具有神奇特性的数列!这句话是非常有用的因为我们发现,如果套着这个数列的定义再从原数列引出一个新数列,它居然还是一样的...... 于是我们就想到了能不能用多 ...

  3. 使用canvas进行图像编辑

    前面的话 本文将分为几个小功能的形式来详细介绍canvas图像编辑 缩放 下面是一张分析图,假设默认情况下,图片和canvas宽高相同.图片的缩放(scale)范围为0.5到3,缩放时改变的是图片的大 ...

  4. go web 第一天 学习笔记

    package main import ( "fmt" "log" "net/http" "strings" ) fun ...

  5. 【JCP模式实战--ferrous-framework】ferrous前端开发框架邀您初体验

    一.简介 ferrous-framework是为了迎合微服务架构而封装的纯前端开发框架. 实现了一种介于单页面和多页面的开发模式,让大家根据自己的需要对单页面和多页面进行切换或者共存. 页面结构采用J ...

  6. JS源生代码“增删改查”之增

    51呢最近在做一个管理数据的,第一次接触到用JS的源代码去实现一些功能,才知道网页里的许多功能都是依赖于“增删改查”完成的,下面的几张图片就是对于增的演示: 下面是有关HTML的代码:这个主要是弹窗部 ...

  7. 编辑sass报错:error style.scss (Line 3: Invalid GBK character "\xE5")解决办法

    cmd.exe /D /C call C:/Ruby23-x64/bin/scss.bat --no-cache --update header.scss:header.css error heade ...

  8. CGLIB 动态代理的实现

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp92  JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类 ...

  9. 微信录音文件上传到服务器以及amr转化成MP3格式

    微信公众号音频接口开发 根据业务需求,我们可能需要将微信录音保存到服务器,而通过微信上传语音接口上传到微信服务器的语音文件的有效期只有3天,所以需要将文件下载到我们自己的服务器. 上传语音接口 wx. ...

  10. React Native底|顶部导航使用小技巧

    导航一直是App开发中比较重要的一个组件,ReactNative提供了两种导航组件供我们使用,分别是:NavigatorIOS和Navigator,但是前者只能用于iOS平台,后者在ReactNati ...