`
234390216
  • 浏览: 10232113 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462588
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775415
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398299
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:394991
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679952
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530843
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183866
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467759
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151363
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68121
社区版块
存档分类
最新评论

Ext(4)——事件响应和render问题

阅读更多

这里的事件响应主要是针对Button的事件响应来说的,主要有三种方式:

第一种是直接写handler: function() {},这种方式默认会去响应其click事件,

第二种是通过listeners属性来实现其事件的说明,如:

listeners: {

       "click": function() {}

第三种方式是通过on关键字来实现,如:

var btn = new Ext.Button();

btn.on("click",function() {})

 

对于render而言,如果在新建一个panel的时候指定了其render属性,那么在其后使用该对象来进行组件添加操作是不会成功的,因为有了render以后,系统会先将panel在页面上进行显示,然后通过异步的方式来执行后面的操作,所以当执行后续的添加操作时就不会进行显示了,如果确实需要这样来实现相关的添加操作,那么就可以监听其render事件,该监听方法会在render之前执行,这时候就可以把需要添加组件的操作在该方法中执行。当没有指定render属性的时候就可以随意的 进行添加操作了,只是最后需要手动的调用类似于panel.render(document.body)这样的方法。

 

 

示例代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>03.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    <link rel="stylesheet" type="text/css" href="../ext4/resources/css/ext-all.css"/>
    <style type="text/css">
    	* {
    		text-align: center;
    	}
    </style>
    <script type="text/javascript" src="../ext4/ext-all-debug.js"></script>
    <script type="text/javascript">
    	Ext.onReady(function() {
    		var myPanel = new Ext.form.Panel({
    			title: "panel",
    			width: 600,
    			height: 300,
    			renderTo: Ext.getBody(),
    			defaults: {//设置一些默认属性
    				xtype: "textfield",//默认的组件类型为textfield
    				width: 480
    			},
    			items: [{fieldLabel: "name"},{fieldLabel: "address"}],
    			buttons: [{
    				text: "确定",
    				handler: function() {
    					alert("确定");
    				}
    			},{
    				text: "取消",
    				listeners: {
    					"click": function() {
    						alert("取消");
    					}
    				}
    			}]
    		});
    		var myPanel2 = new Ext.panel.Panel({
    			title: "panel2",
    			width: 600,
    			height: 300,
    			renderTo: document.body,//如果在创建的时候就把这个panel依附到了document.body等容器中,
    			//那么如果在后面直接使用myPanel2.add(component)方法添加一个组件的时候该组件不会被显示在页面上,因为
    			//在依附的时候是把依附时候的模样显示在页面上的,如果确实需要在后面添加的时候还能进行显示的话就监听其render,并
    			//在该方法中做添加操作,这样panel在依附到指定的容器中的时候就会触发该事件,此时所做的添加组件操作就可以在页面上进行
    			//显示了
    			defaults: {
    				xtype: "textfield",
    				width: 480
    			},
    			items: [{fieldLabel: "name"},{fieldLabel: "address"}],
    			listeners: {
    				"render": function() {
    					var btn1 = new Ext.Button({text: "确定", width: 100});
    					var btn2 = new Ext.Button({text: "取消", width: 100});
    					btn1.on("click",function() {
    						alert("确定");
    					});
    					btn2.on("click",function() {
    						alert("取消");
    					});
    					this.add(btn1);
    					this.add(btn2);
    				}
    			}
    		});
    		var myPanel3 = new Ext.panel.Panel({
    			title: "panel3",
    			width: 500,
    			height: 200,
    			defaults: {
    				xtype: "textfield",
    				width: 350
    			},
    			items: [{fieldLabel: "name"},{fieldLabel: "address"}]
    		});
    		myPanel3.add(new Ext.Button({text: "确定", width: 100}));
    		myPanel3.add(new Ext.Button({text: "取消", width: 100}));
    		//如果确实需要手工一步一步的添加各种组件,那么这个时候就需要手动的将生成的panel依附到指定的容器了
    		myPanel3.render(Ext.getBody());
    	});
    </script>

  </head>
  
  <body>
    
  </body>
</html>
1
0
分享到:
评论

相关推荐

    Openlayers扩展插件ol-ext ,2022年4月版本v3.2.23

    10. **社区支持**:作为开源项目,ol-ext拥有活跃的开发者社区,不断有新的功能和改进被贡献进来,同时遇到问题也可以寻求社区的帮助。 综上所述,ol-ext v3.2.23为OpenLayers带来了更丰富的地图功能和更好的视觉...

    Extjs4 API文档阅读(三)——布局和容器

    ### Extjs4 API文档阅读(三)——布局和容器 #### 一、容器与基本概念 在Ext JS中,容器(Container)是一种特殊的组件,能够容纳其他组件。这使得Ext JS非常灵活,能够构建复杂的用户界面。容器是构成Ext JS应用...

    Ext拖动实例树和表格全 超实用

    ### Ext 拖动实例——树与表格全解析 #### 一、背景介绍 在现代Web应用开发中,用户交互体验越来越受到重视。其中,拖拽功能作为一种直观且高效的交互方式,被广泛应用于各种场景中。Ext JS作为一款强大的前端框架...

    JsRender.zip(jsrender.js和jsrender.min.js合集)

    JsRender 包含了两个核心文件:`jsrender.js` 和 `jsrender.min.js`,它们提供了相同的功能,但`jsrender.min.js`是经过压缩和优化的版本,更适合在生产环境中使用,因为它加载更快,占用的带宽更小。 **主要特点**...

    render标签的使用

    这种灵活性使`render`属性在构建动态和响应式的用户界面时变得非常有用。 以下是一个使用EL(Expression Language)的例子,展示了如何根据变量动态设置`render`属性: ```xml &lt;a4j:commandButton value="Dynamic ...

    ext 编程开发指南

    ##### 响应事件 EXT简化了事件处理,使得绑定事件变得非常直观: ```javascript Ext.get('someElement').on('click', function() { // 当元素被点击时执行的回调函数 }); ``` 通过这种方式,可以轻松为DOM元素...

    在React中如何优雅的处理事件响应详解

    总结来说,React中处理事件响应的选择取决于具体需求和项目配置。在追求代码简洁性时,可以考虑使用箭头函数,但要注意可能的性能影响;若注重性能,直接使用组件方法并在构造函数中绑定`this`是不错的选择;而属性...

    jquery-jsrender.js

    **jQuery-jsrender.js** 是一个基于...总的来说,jQuery-jsrender.js 为前端开发者提供了一个强大的工具,帮助他们构建响应式、高性能的用户界面,特别是在处理动态数据和复杂视图时,能够显著提高开发效率和用户体验。

    Octane Render for C4D 进阶教程

    Octane Render for C4D是一款常用于Cinema 4D的高质量渲染器,它以物理准确性、交互性和灵活性著称。接下来将详细探讨标题和描述中提到的知识点。 1. OC节点材质讲解:OC渲染器具有节点式材质编辑器,允许用户通过...

    Ext表格控件和树控件

    ### Ext表格控件和树控件 #### 表格控件 ##### 1.1 基本表格 `GridPanel` 在Ext JS框架中,`GridPanel` 是一种用于展示和管理表格数据的重要组件。它提供了丰富的功能,例如排序、缓存、拖动列、隐藏列、自动显示...

    ext 双层表格 grid(附带图片)

    考虑到现代Web应用的跨设备需求,EXT JS Grid支持响应式布局,可以根据屏幕大小自动调整列宽和布局。 综上所述,EXT JS的双层表格功能提供了强大的数据展示能力,通过灵活的配置和丰富的API,可以满足各种复杂的...

    EXT中文教程121212

    EXT库不仅提供了美观的界面,还包含了数据绑定机制、事件处理、Ajax通信等功能,使得开发人员能够高效地构建响应式和动态的Web应用。 下载EXT: 要开始使用EXT,首先需要从官方站点或者第三方资源下载EXT的最新版本...

    editTreeGrid ext可编辑的treegridpanel

    EXT JS是一个用于构建富互联网应用(RIA)的JavaScript库,它提供了大量的UI组件和数据绑定机制,支持响应式布局,适用于各种屏幕尺寸。EXT JS的组件化开发方式使得开发者可以构建复杂且交互丰富的界面。 2. **...

    Extjs 重写Panel添加click事件

    当涉及到事件监听时,我们可以利用Ext JS的事件系统来实现。 点击事件(click event)是用户与UI交互的常见行为,常用于触发某些操作。在Ext JS中,我们可以为任何具有DOM元素的组件添加click事件监听器。对于Panel...

    ext学习资料ext学习资料

    4. **在项目中使用Ext Js** 引入Ext Js库需要将`resources`目录及其内容复制到项目中,并确保按顺序加载`ext-base.js`、`ext-all.js`和`ext-lang-zh_CN.js`。在HTML文件中,这些链接应该像下面这样添加: ```html...

    EXT3.2 多选下拉框

    需要注意的是,EXT JS的事件处理和数据绑定也是重要的部分。例如,当用户选择或取消选择选项时,可以监听`select`事件,获取当前选中的值。同时,如果你的多选下拉框是动态加载数据的,可能还需要实现远程数据加载和...

    Ext树例子

    Ext树还支持许多高级特性,比如拖放操作、节点的展开/折叠、节点的图标和提示、监听节点事件等。通过熟练掌握这些特性,你可以构建出功能强大的树形用户界面,满足各种业务需求。 总结来说,`Ext树例子`是关于如何...

Global site tag (gtag.js) - Google Analytics