`
jiangzi87
  • 浏览: 27983 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

extjs 中doLayout()使用

阅读更多
在网上看了很多人抄的一个实例,生成menu 相关的文件名为MenuExt.html,与MenuExt.js 但是大多数抄的文章多少了一句 tb.doLayout(); 导致页面没有任何效果,正确的做法是。在 tb.add({
text: 'Ext菜单测试',
iconCls: 'bmenu',
//注入菜单
menu: menu
});

加tb.doLayout(); 说明一下。这个方法的作用就是:当某个组件调用add( Ext.Component/Object component ) : Ext.Component
往组件里填新东西的时候,必须在调用doLayout()方法,更新一下布局,才能看的见刚加入的组件。
还是希望网上的朋友能够把确实可用的代码放上去。

我把我的代码贴出来
MenuExt.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MenuExt</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css"/>

<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../ext-all.js"></script>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<div id="toolbar"></div>
</body>
</html>

MenuExt.js:

Ext.onReady(function(){
Ext.QuickTips.init();
//菜单选项
var dateMenu = new Ext.menu.DateMenu({
handler: function(dp, date){
Ext.MessageBox.alert('日期选择', '选择日期为: ' + date.format('Y/m/d'), '');
}
});

var colorMenu = new Ext.menu.ColorMenu({
id: 'colorMenu',
handler: function(cm, color){
var rgb=Ext.color.hexToRGB(color);
Ext.MessageBox.alert('颜色','R='+rgb.R+',G='+rgb.G+',B='+rgb.B, '');
}
});

function onItemCheck(item, checked){
Ext.MessageBox.alert('选择', '当前点选[' + item.text + '],状态为 ' + (checked ? 'checked' : 'unchecked'), '');
}

var menu = new Ext.menu.Menu({
      
id: 'mainMenu',
items: [{
text: '选项1',
//默认为选中
checked: true,
//选中处理方式为onItemCheck
checkHandler: onItemCheck
}, {
text: '选项2',
checked: true,
checkHandler: onItemCheck
}, {
text: '选项3!',
checked: true,
checkHandler: onItemCheck
}, //分隔菜单
'-', {
text: '单选菜单',
menu: {
items: [{
text: 'A',
checked: false,
group: 'theme',
checkHandler: onItemCheck
}, {
text: 'B',
checked: true,
group: 'theme',
checkHandler: onItemCheck
}, {
text: 'C',
checked: false,
group: 'theme',
checkHandler: onItemCheck
}, {
text: 'D',
checked: false,
group: 'theme',
checkHandler: onItemCheck
}]
}
}, {
text: '日期选择',
iconCls: 'calendar',
menu: dateMenu
}, {
text: '颜色选择',
menu: colorMenu
}]
});
//创建工具栏
var tb = new Ext.Toolbar();
//绑定到toolbar元素
tb.render('toolbar');
//添加菜单
tb.add({
text: 'Ext菜单测试',
iconCls: 'bmenu',
//注入菜单
menu: menu
});

tb.doLayout();



});
// 自定义函数,用于从color event中提取所选数值
Ext.color = function(){
var result = '';
var bool = true;
var formatValue = function(obj){
if (bool) {
var obj = Array.prototype.slice.call(arguments, 0);
result = String.format('{0}', obj);
}
bool = !bool;
return result;
}
var hexTodec = function(hexchar){
return "0123456789ABCDEF".indexOf(hexchar.toUpperCase());
}
return {
value: function(obj){
return formatValue(obj);
},
hexToRGB: function(color){
color = formatValue(color);
var now = color.replace("#", "");
return {
R: (hexTodec(now.substr(0, 1)) * 16) + hexTodec(now.substr(1, 1)),
G: (hexTodec(now.substr(2, 1)) * 16) + hexTodec(now.substr(3, 1)),
B: (hexTodec(now.substr(4, 1)) * 16) + hexTodec(now.substr(5, 1))
}
},
init: function(){
}
};
}
();
Ext.onReady(Ext.color.init, Ext.color);
分享到:
评论

相关推荐

    ExtJs 动态添加表单

    在ExtJS中,我们可以使用`Ext.container.Container`类来创建一个容器,然后设置布局为`form`,以便容纳表单字段。例如: ```javascript var formPanel = Ext.create('Ext.form.Panel', { layout: 'form', items...

    Extjs自动最大化panel

    在EXTJS中,"Extjs自动最大化panel"是一种高级布局技术,它允许用户创建一个能够自动适应并填充其容器的面板(Panel)。这种特性对于构建响应式和自适应的用户界面至关重要,尤其在现代Web应用中,用户期望界面能够...

    extJs中关于formPanel动态添加组件的验证问题

    3. **更新验证状态**:如果在表单已经初始化并显示的情况下添加字段,可能需要手动触发FormPanel的验证,可以使用`formPanel.getForm().isValid()`来检查整个表单是否有效。 4. **错误处理**:当验证失败时,EXT JS...

    ExtJS-Layouts.pdf

    本文将深入探讨ExtJS4中的布局系统,涵盖其基本概念、各种布局类型的特性及应用场景,并通过具体示例展示如何有效利用这些布局。 二、ExtJS布局概述与分类 ### 1. Box Model Layout vs Sencha Layouts 传统的Box ...

    关于ExtJS的工具栏动态添加按钮(从后台数据库读取信息).doc

    在ExtJS中,工具栏(Toolbar)是一种常用的组件,它允许开发者在页面顶部或底部放置一组操作按钮。在本文档中,我们将探讨如何动态地从后台数据库读取信息来创建和添加这些按钮到ExtJS的工具栏中。这是一项实用的...

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

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

    Extjs3.0 checkboxGroup 动态添加item实现思路

    在探讨Extjs3.0中CheckboxGroup动态添加item的问题之前,首先要了解Extjs3.0的CheckboxGroup组件。CheckboxGroup允许用户在一个组合框内选择多个选项,与单选按钮组RadioGroup相反,它是多个复选框的集合。然而,与...

    FormPanel的插入与删除

    在Web开发中,FormPanel是ExtJS库中的一个关键组件,用于创建表单来收集用户输入的数据。这篇博客“FormPanel的插入与删除”显然探讨了如何在FormPanel中动态添加和移除字段,这对于构建可扩展和动态的用户界面至关...

    Ext JS Grid在IE6 下宽度的问题解决方法

    } 2、在grid中加入下面代码: 代码如下:monitorResize: true, doLayout: function() { this.setSize(Ext.get(this.getEl().dom[removed]).getSize(true)); Ext.grid.GridPanel.prototype.doLayout.call(this

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -重命名AccordionPanel为AccordionPane (这也是在Asp.net AJAX中使用的名称). +所有的面板默认有两个集合属性(Toolbars和Items). -尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置...

    ExtAspNet_v2.3.2_dll

    -重命名AccordionPanel为AccordionPane (这也是在Asp.net AJAX中使用的名称). +所有的面板默认有两个集合属性(Toolbars和Items). -尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置...

Global site tag (gtag.js) - Google Analytics