ExtJS入门教程01,Window如此简单,你怎能不会?

摘要:
来吧,创建一个漂亮的弹出窗口varwin=Ext-create;效果:请注意,如果未添加autoShow:true,则不会显示窗口。当然,我们可以利用胜利。show()方法显示窗口。通过Ext Create创建窗口对象。create方法的第二个参数是窗口的配置项,包括宽度、高度等。作为容器,ExtJSwindow可以添加其他容器或组件,例如表单和网格。添加extjs组件时,可以使用items配置项。

这是一系列ExtJS教程,今天的是第一篇,主要介绍ExtJS中Window的基本用法。希望大家能够支持!

来吧,创建一个漂亮的弹出窗

var win = Ext.create("Ext.Window", {
    title: "ExtJS Window",
     500,
    height: 300,
    autoShow: true
});

效果:

image

小伙伴们注意了,如果不加autoShow:true的时候,window是不会显示出来的,当然,我们可以使用win.show()方法来显示一个窗口。

在窗口中显示一个网页

小伙伴们常常希望能够在window中添加iframe,可以方便的将其它页面显示在窗口中,具体的做法是如下:

Ext.onReady(function () {
    var win = Ext.create("Ext.Window", {
        title: "ExtJS Window",
         500,
        height: 300,
        html:'<iframe   src="http://www.qeefee.com" frameborder="0"></iframe>',
        autoShow: true
    });
});

效果:

image

(我这里显示了自己的网站,臭美一下~)

为window指定html属性,这个属性是要在window的body中显示的html元素,可以是任意的html标签(iframe也是html标签),例如我们要显示一段话:

Ext.onReady(function () {
    var win = Ext.create("Ext.Window", {
        title: "ExtJS Window",
         500,
        height: 300,
        html:'<p>齐飞是个程序员!</p>',
        autoShow: true
    });
});

效果如下:

image

显示大段的HTML

当然,小伙伴们的需求总是很多的,比如就有人说了,html属性如果很长,这样拼接字符串岂不是很丑?!

答案是肯定的,丑的不能再丑了~大家看一下iframe的那个代码,已经是比较长了,编辑的时候经常要拖动下面的滚动条,这样显然是不方便的,并且还要经常写属性,引号、双引号来回切换,简直是烦透了,有没有解决办法呢?

额,办法肯定是有的,小伙伴们,来试试contentEl配置项吧。

contentEl配置项允许我们将一个html元素指定为window要显示的内容,也就是说,如果我们页面上有一个如下的div:

<div id="content">
    <strong>Window 的内容</strong>
    <p>齐飞是个程序员!</p>
</div>

我们可以在window的配置中来使用:

Ext.onReady(function () {
    var win = Ext.create("Ext.Window", {
        title: "ExtJS Window",
         500,
        height: 300,
        contentEl: 'content',
        autoShow: true
    });
});

效果如下:

image

contentEl可以将页面中现有的html元素添加到window中,需要注意的是一定要在页面加载完成之后使用,否则页面中的元素是不存在的。

解决内容闪烁的问题

这个时候,爱找麻烦的小伙伴又站了出来,小伙伴说页面加载以后内容先在页面中绘制了,会闪烁一下才显示在window中,额,当然,这是一个问题,那么该如何解决呢?

聪明的小伙伴这个时候自己想到一个办法,就是先将div隐藏,加一个style属性,把display设置为none;

爱动手的小伙伴验证了聪明的小伙伴的想法,发现div在window中仍然是隐藏的,如果我们再添加一个额外的方法岂不是大费周章?

现在我们来看一看contentEl的API吧,在api的最后一段,有这样一句话:

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.

英语好的小伙伴们知道了吧,为我们的div添加一个x-hidden或者x-hide-display属性就能简单的解决内容闪烁的问题了。修改后的div如下:

<div id="content" class="x-hidden">
    <strong>Window 的内容</strong>
    <p>齐飞是个程序员!</p>
</div>

作为一个容器,它应该这样

看到了吧,window就是这么简单,我们可以很方便的来使用它。

通过Ext.create来创建window对象,create方法的第二个参数为window的配置项,包括width、height等。

ExtJS window作为一个容器,可以在里面添加其他的容器或组件,例如form、grid等,在添加extjs组件的时候可以使用items配置项来实现。

下面的代码演示了如何向window中添加一个form,并在form中加入一些控件:

Ext.onReady(function () {
    var win = Ext.create("Ext.Window", {
        title: "ExtJS Window",
         500,
        height: 300,
        items: [
            {
                xtype: "form",
                border: false,
                bodyPadding: 5,
                fieldDefaults: {
                    labelAlign: 'right',
                    labelWidth: 60,
                     470
                },
                items: [
                    {
                        xtype: "textfield", fieldLabel: "姓名"
                    },
                    {
                        xtype: "textarea", fieldLabel: "留言"
                    }
                ]
            }
        ],
        buttons: [
            {
                text: "确定"
            }
        ],
        autoShow: true
    });
});

效果如图:

image

哎呀,我被关闭了!

小伙伴们通常希望在window关闭的时候得到通知,例如刷新现有的列表等,现在extjs中的事件是通过在配置项中添加listeners来完成,当然,如果是动态添加事件,就要使用on方法了。

我们先来一个通过listeners添加事件的例子:

var win = Ext.create("Ext.Window", {
    title: "ExtJS Window",
     500,
    height: 300,
    listeners: {
        close: function () {
            Ext.MessageBox.alert("提示", "哎呀,我被关闭了!");
        }
    },
    buttons: [
        {
            text: "确定",
            handler: function () {
                this.up("window").close();
            }
        }
    ],
    autoShow: true
});

当我们点击“确定”按钮的时候将关闭窗口,试一下效果吧。

下面来一个通过on方法添加事件的例子:

var win = Ext.create("Ext.Window", {
    title: "ExtJS Window",
     500,
    height: 300,
    buttons: [
        {
            text: "确定",
            handler: function () {
                this.up("window").close();
            }
        }
    ],
    autoShow: true
});

win.on("close", function () {
    Ext.MessageBox.alert("提示", "哎呀,我被关闭了!");
});

好了,这就是ExtJS Window的一些入门级用法,你还有别的不明白?告诉我,我来完善这篇文章。

免责声明:文章转载自《ExtJS入门教程01,Window如此简单,你怎能不会?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇excel文件使用navicat工具导入mysql的方法TCP套接字选项SO_LINGER与TCP_LINGER2下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

转: ExtJS中xtype一览

转: ExtJS中xtype一览 基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton 带下拉选项菜单的按钮 buttongroup Ext.ButtonGroup 编组按钮(Since...

ExtJS 基础解析之【Ext.FormPanel】之一

今天我和大家继续分享ExtJS!OK!上篇中我们分享了Ext.window的简单使用,今天我们要看看强大的FormPanel,也是继承panel组件的使用。首先弄清楚这个问题,创建的时候:  //查看源代码便知,两种方法是一样的Ext.form.FormPanel = Ext.FormPanel;我们还是从最简单的代码实例开始吧:<!--html代码...

extjs学习笔记--ExtJS框架基础:事件模型及其常用功能

前言 工作中用ExtJS有一段时间了,Ext丰富的UI组件大大的提高了开发B/S应用的效率。虽然近期工作中天天都用到ExtJS,但很少对ExtJS框架原理性的东西进行过深入学习,这两天花了些时间学习了下。我并不推荐大家去研究ExtJS框架的源码,虽然可以学习其中的思想和原理,但太浪费精力了,除非你要自己写框架。 对于ExtJS这种框架,非遇到“杂症”的时候...

Extjs校验配置项

Extjsform组件1、Ext.form.Action配置项:success:执行成功后回调的函数,包括两个参数:form和actionfailure:执行失败后回调的函数,包括两个参数:form和actionmethod:表单的提交方式,有效值包括GET、POSTparams:传递到请求中的参数url:动作提交的路径waitMsg:动作执行时显示的等待...

Extjs6(特别篇)——项目自带例子main.js拆分详解

本文基于extjs6.0.0 一、拆分代码来看看 1、主页面main是个tab页; 写一些页面的依赖; 标明页面的controller和viewModel Ext.define('Learning.view.main.Main', { extend: 'Ext.tab.Panel', xtype: 'app-main',...

【ExtJS】FormPanel表单验证

在Extjs中,FormPane表单提供了各种各样的验证。 在表单验证前需要在onReady的function({})内添加以下代码: Ext.QuickTips.init();              //为组件提供提示信息功能,form的主要提示信息就是客户端验证的错误信息。 出现错误提醒有两种方法: 1、Ext.form.Field.prototy...