EXTJS 动态向容器中添加组件

Cyan Homlez 2014-04-22 03:54:32
数据源

var data = {
name: "公司航站服务运行审计",
clazz: [{
name: "航站管理",
option: [{
title: "航站应建立管理文件,明确场站内各岗位的职责和各项与运行相关的工作程序。",
operation: "审计方式:抽查<br/>审计要点:管理文件指定文字化的《工作/管理手册》...",
textarea: "审计评语",
radio:[{
title: "审计结论",
option:["符合","不符合","观察项","不适合"]
}]
},{
title: "营业部/办事处应持有有效的代理协议。",
operation: "审计方式:抽查<br/>审计要点:代理协议包括:地面服务代理协议(包括不限于头等舱协议、SLA协议)。",
textarea: "审计评语",
radio:[{
title: "审计结论",
option:["符合","不符合","观察项","不适合"]
}]
},{
title: "营业部/办事处应持有有效的代理协议。",
operation: "审计方式:抽查<br/>审计要点:代理协议包括:地面服务代理协议(包括不限于头等舱协议、SLA协议)。",
textarea: "审计评语",
radio:[{
title: "审计结论",
option:["符合","不符合","观察项","不适合"]
}]
}]
},{
name: "Manual Management",
option: [{
title: "营业部/办事处应持有有效的代理协议。",
operation: "审计方式:抽查<br/>审计要点:代理协议包括:地面服务代理协议(包括不限于头等舱协议、SLA协议)。",
textarea: "审计评语",
radio:[{
title: "审计结论",
option:["符合","不符合","观察项","不适合"]
}]
},{
title: "营业部/办事处应持有有效的代理协议。",
operation: "审计方式:抽查<br/>审计要点:代理协议包括:地面服务代理协议(包括不限于头等舱协议、SLA协议)。",
textarea: "审计评语",
radio:[{
title: "审计结论",
option:["符合","不符合","观察项","不适合"]
}]
},{
title: "营业部/办事处应持有有效的代理协议。",
operation: "审计方式:抽查<br/>审计要点:代理协议包括:地面服务代理协议(包括不限于头等舱协议、SLA协议)。",
textarea: "审计评语",
radio:[{
title: "审计结论",
option:["符合","不符合","观察项","不适合"]
}]
}]
}]
};

组件:


function createRadioGroup(option) {
var radioGroup = {
xtype: 'fieldset',
title: option.title,
layout: 'form',
collapsible: true,
items: [{
xtype: 'component',
html: option.operation,
cls: "a"
},{
xtype: 'textfield',
name: 'text1',
fieldLabel: option.textarea
},{
xtype: 'radiogroup',
fieldLabel: option.radio[0].title,
cls: 'x-check-group-alt',
items: [
{boxLabel: option.radio[0].option[0], name: 'choose1', inputValue: "A"},
{boxLabel: option.radio[0].option[1], name: 'choose1', inputValue: "B"},
{boxLabel: option.radio[0].option[2], name: 'choose1', inputValue: "C"},
{boxLabel: option.radio[0].option[3], name: 'choose1', inputValue: "D"}
]
}]
}
return radioGroup;
};

容器:

var individual = {
xtype: 'container',
layout: 'hbox',
margin: '0 0 10',
items: [{
xtype: 'fieldset',
flex: 1,
title: 'TITLE 2',
defaultType: 'checkbox',
layout: 'anchor',
defaults: {
anchor: '100%',
hideEmptyLabel: false
},
items: [
radioGroup2
]
}]
};

面板:

var fp = Ext.create('Ext.FormPanel', {
title: 'Station Audit',
frame: true,
fieldDefaults: {
labelWidth: 110,
labelStyle: 'color:green;padding-left:4px'
},
width: 600,
renderTo:'form-ct',
bodyPadding: 10,
items: [
individual
],
buttons: [{
text: 'Submit',
handler: function(){
if(fp.getForm().isValid()){
Ext.Msg.alert('Submitted Values', 'The following will be sent to the server: <br />'+
fp.getForm().getValues(true).replace(/&/g,', '));
}
}
},{
text: 'Reset',
handler: function(){
fp.getForm().reset();
}
}]
});


本人EXTJS新手, 现在需要根据数据源数组的长度循环创建组件,并将组件按创建顺序全部添加到容器中去,看API中有add()方法,反复尝试还是没有结果,觉得此时有必要向诸位大牛请教了,求实现。
...全文
2298 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cyan Homlez 2014-04-23
  • 打赏
  • 举报
回复
引用
add组件要在父组件渲染完以后进行
非常感谢你的帮助,受教了,辛苦。
lzpggg 2014-04-23
  • 打赏
  • 举报
回复
add组件要在父组件渲染完以后进行
var individual = {
    xtype: 'container',
    layout: 'hbox',
    margin: '0 0 10',
    items: [{
        xtype: 'fieldset',
        flex: 1,
        title: 'TITLE 2',
        defaultType: 'checkbox',
        layout: 'anchor',
        defaults: {
            anchor: '100%',
            hideEmptyLabel: false
        },
        listeners: {
             scope : this
             render: function(fieldset){
                   var a = createRadioGroup(data.clazz[0].option[0]);
                   fieldset.add(a);
                   fieldset.doLayout();
             }
        },
        items: [
            radioGroup2
        ]
    }]
};
Cyan Homlez 2014-04-22
  • 打赏
  • 举报
回复
还是不行...
Cyan Homlez 2014-04-22
  • 打赏
  • 举报
回复
渲染,好,我试试。
Cyan Homlez 2014-04-22
  • 打赏
  • 举报
回复

var radioGroup2 = {
xtype: 'fieldset',
title: data.clazz[0].option[1].title,
layout: 'form',
collapsible: true,
items: [{
xtype: 'component',
html: data.clazz[0].option[1].operation,
cls:'a'
},{
xtype: 'textfield',
name: 'text2',
fieldLabel: data.clazz[0].option[1].textarea
},{
xtype: 'radiogroup',
fieldLabel: data.clazz[0].option[0].radio[0].title,
cls: 'x-check-group-alt',
items: [
{boxLabel: data.clazz[0].option[1].radio[0].option[0], name: 'choose2', inputValue: "A"},
{boxLabel: data.clazz[0].option[1].radio[0].option[1], name: 'choose2', inputValue: "B"}, {boxLabel: data.clazz[0].option[1].radio[0].option[2], name: 'choose2', inputValue: "C"},
{boxLabel: data.clazz[0].option[1].radio[0].option[3], name: 'choose2', inputValue: "D"}
]
}]
};
var individual = {
xtype: 'container',
layout: 'hbox',
margin: '0 0 10',
items: [{
xtype: 'fieldset',
flex: 1,
title: 'TITLE 2',
defaultType: 'checkbox',
layout: 'anchor',
defaults: {
anchor: '100%',
hideEmptyLabel: false
},
items: [
radioGroup2
]
}]
};

面板代码就不附了,结果是:

这是我手动配的。组件的格式应该是没问题的,
lzpggg 2014-04-22
  • 打赏
  • 举报
回复
还有你的individual.items[0]现在仅仅是个配置哟并没有渲染成组件,可能出在这里!
lzpggg 2014-04-22
  • 打赏
  • 举报
回复
"checkbox.add(a);就已经有问题了,doLayout()未执行。" 说明你的a格式有问题,你自己调试看看,先用手动格式看行不,然后再读取数据.
Cyan Homlez 2014-04-22
  • 打赏
  • 举报
回复
嗯,API我看过了,我也尝试了,没有结果才来求教。

	var checkbox = individual.items[0];
	var a = createRadioGroup(data.clazz[0].option[0]);
	checkbox.add(a);
checkbox.add(a);就已经有问题了,doLayout()未执行。
lzpggg 2014-04-22
  • 打赏
  • 举报
回复
Notes : If the Container is already rendered when add is called, you may need to call doLayout to refresh the view which causes any unrendered child Components to be rendered. This is required so that you can add multiple child components if needed while only refreshing the layout once. For example:
var tb = new Ext.Toolbar();
tb.render(document.body);  // toolbar is rendered
tb.add({text:'Button 1'}); // add multiple items (defaultType for Toolbar is 'button')
tb.add({text:'Button 2'});
tb.doLayout();             // refresh the layout
1.帮助: TabPanel(选项卡组件) 参数说明 renderTo 渲染到某容器 将选项卡组件渲染到某容器,参数类型可以为字符串,也可以为jQuery所加载的对象,如果为声明该参数,组件默认的承载容器为BODY。 items 选项卡元素集合 选项卡组件渲染后就会显示的选项卡元素集合,具体参数请查看选项卡元素。 width 宽度 选项卡组件的总宽度,默认400px。 height 高度 选项卡组件页面显示层的高度,默认300px。 border 是否显示边框 嵌套显示选项卡时,会出现重复边框的情况,影响美观,将border设置为”none”,则可以避免,默认显示边框,不接受除”none”之外的参数值。 active 渲染后默认激活哪个选项卡元素 下标以0为开始,默认为0。 maxLength 最多显示几个选项卡元素 -1为无限,默认为-1。 tabs 获得选项卡组件所有的选项卡元素 可根据需要获得选项卡组件的所有选项卡元素。 公共方法 addTab(object) 添加一个选项卡元素 动态向选项卡组件添加一个选项卡元素。 flush(string | number) 刷新选项卡元素的内容 将选项卡元素的内容刷新,参数可以为选项卡元素的ID或下标。 show(string | number) 显示选项卡元素 显示制定选项卡元素,参数可以为选项卡元素的ID或下标。 Kill(string | number) 关闭选项卡元素 关闭选项卡元素,参数可以为选项卡元素的ID或下标。 getTabsCount() 获得选项卡元素数量 getTitle(string | number) 获得选项卡元素的标题 setTitle(string | number, string) 设置选项卡元素的标题 getContent(string | number) 获得选项卡元素的内容 setContent(string | number, string) 设置选项卡元素的内容 getDisable(string | number) 选项卡元素是否禁用 setDisable(string | number) 设置选项卡元素是否禁用 getCloseable(string | number) 选项卡元素是否可关闭 setCloseable(string | number, boolean) 设置选项卡元素是否可关闭 getActiveTab() 获得被激活的选项卡元素 使用方法 页面引入jQuery.js、TabPanel.js、Fader.js、TabPanel.css new TabPanel({ renderTo:'tabs', width: '100%', height: '500px', active: 0, items: [{ title:'工作心', html:'', closable: false }] }); TabPanel item(选项卡元素) 参数说明 id 元素ID 必须唯一,或者不设置该参数,否则将无法添加到选项卡组件,默认自动生成。 title 元素标题 可以动态设置。 closeable 是否可关闭 true可关闭,false不可关闭,默认为true。
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、对Ajax的支持以及如何调试等。最后利用一个商品信息管理系统和一个企业任务管理系统,向读者演示了ExtJS在实际项目的应用以及实现流程。   《精通JS脚本之ExtJS框架》附有配套光盘,提供了书实例的源代码和视频教学文件。此外,读者还可以通过访问itzcn网站来获得即时在线帮助。   《精通JS脚本之ExtJS框架》可以作为Web开发的自学参考书,也可以作为RIA Web程序开发的培训教材。 第1章 JavaScript入门必备 1.1 JavaScript语言概述 1.1.1 JavaScript简介 1.1.2 JavaScript特点 1.1.3 JavaScript与Java 1.2 第一个JavaScript程序 1.2.1 嵌入JavaScript 1.2.2 链接外部JavaScript文件 1.2.3 注意事项 1.3 基础语法 1.3.1 数据类型 1.3.2 变量与常量 1.3.3 运算符 1.4 流程控制语句 1.4.1 if条件语句 1.4.2 switch条件语句 1.4.3 while循环语句 1.4.4 do while循环语句 1.4.5 for循环语句 1.4.6 for in循环语句 1.4.7 try catch finally语句 1.4.8 其他语句 第2章 JavaScript浏览器对象模型与事件处理 2.1 浏览器对象模型 2.1.1 文档对象 2.1.2 表单及其元素对象 2.1.3 浏览器信息对象 2.1.4 窗口对象 2.1.5 网址对象 2.1.6 历史记录对象 2.2 基本事件处理 2.3 2级DOM事件模型 2.3.1 事件传播 2.3.2 注册事件处理程序 2.3.3 event对象 2.4 常用事件 2.4.1 键盘事件 2.4.2 鼠标事件 2.4.3 页面事件 第3章 开始使用ExtJS 3.1 ExtJS概述 3.1.1 ExtJS简介 3.1.2 ExtJS的基本概念 3.1.3 ExtJS与常见JavaScript库的介绍与对比 3.2 创建第一个程序 3.2.1 下载ExtJS 3.2.2 部署到开发工具 3.2.3 编写HelloWorld.html 3.2.4 运行调试ExtJS 3.3 辅助开发 3.3.1 调试工具Firebug 3.3.2 开发利器Spket 第4章 ExtJS事件机制 4.1 设计模式——观察者模式 4.2 自定义事件 4.3 浏览器事件 4.4 ExtJS的事件 4.4.1 Function.call()/apply()方法 4.4.2 函数的作用域 4.4.3 Ext.lib.Event事件 4.4.4 Ext.util.Observable事件 4.4.5 Ext.EventManager事件 4.4.6 Ext.EventObject事件 4.5 各种事件登记方式 4.5.1 传统式登记 4.5.2 内联式登记 4.5.3 Dom Level2登记 4.6 高级组件事件 4.7 ExtJS键盘事件 第5章 ExtJS组件 5.1 核心组件 5.1.1 ExtJS组件结构 5.1.2 Ext.Component 5.1.3 Ext.BoxComponent 5.1.4 Ext.Container 5.1.5 Ext.Panel 5.1.6 Ext.TabPanel 5.2 信息提示框组件 5.2.1 Ext.MessageBox简介 5.2.2 Ext.MessageBox.alert() 5.2.3 Ext.MessageBox.confirm() 5.2.4 Ext.MessageBox.prompt() 5.2.5 Ext.MessageBox.wait() 5.2.6 Ext.MessageBox.show() 5.2.7 Ext.MessageBox的其他功能 5.3 进度条组件 5.3.1 Ext.ProgressBar简介 5.3.2 手工模式的进度条 5.3.3 自动模式的进度条 5.3.4 自定义样式的进度条 5.4 工具栏和菜单栏 5.4.1 Ext.Toolbar简介 5.4.2 只包含按钮的简单工具栏 5.4.3 包含多种元素的复杂工具栏 5.4.4 Ext.menu.Menu简介 5.4.5 最简单的菜单栏 5.4.6 创建三级或多级菜单 5.4.7 具有选择框的菜单 第6章 页面元素与模板 6.1 构成用户界面的元素 6.2 获取页面元素 6.3 元素常见的使用方法 6.3.1 常见的“显示/隐藏”方法 6.3.2 常见的“内容控制”方法 6.3.3 常见的“操控DOM”方法 6.3.4 常见的“尺寸大小/定位”方法 6.3.5 常见的“特效动画”方法 6.3.6 DomHelper简介 6.4 DomQuery入门 6.4.1 元素选择符Selector 6.4.2 属性选择符Attributes Selectors 6.4.3 CSS值元素选择符 6.4.4 Ext.query与Ext.select 6.5 应用模板 6.5.1 Ext.Template 6.5.2 Ext.XTemplate 第7章 设计表单类布局 7.1 Form表单简介 7.1.1 Form表单的基本配置 7.1.2 ExtJS对Form表单的封装 7.2 ExtJS的表单组件 7.2.1 文本输入控件Ext.form.TextField 7.2.2 多行文本输入控件Ext.form.TextArea 7.2.3 单选框 7.2.4 复选框 7.2.5 下拉列表框 7.2.6 日期输入控件Ext.form.DateField 7.2.7 在线编辑器Ext.form.HtmlEditor 7.3 ExtJS表单组件的综合应用 第8章 设计表格类布局 8.1 表格简介 8.1.1 表格的基本属性 8.1.2 制作第一个表格 8.2 表格常用功能详解 8.2.1 主要属性功能 8.2.2 自定义列宽度 8.2.3 执行按列排序 8.2.4 解决文排序 8.2.5 格式化显示日期类型数据 8.3 美化表格 8.4 设置表格背景颜色 8.5 显示行号和复选框 8.5.1 显示行号 8.5.2 引用复选框 第9章 表格的高级功能 9.1 表格视图——Ext.grid.GridView 9.2 表格分页 9.2.1 添加表格分页显示工具条 9.2.2 从后台脚本获得分页数据 9.2.3 在表格顶部显示分页工具条 9.2.4 实现前台分页效果 9.3 可编辑表格控件——EditorGrid 9.3.1 制作第一个EditorGrid 9.3.2 添加一行数据 9.3.3 保存修改结果 9.3.4 验证EditGrid的数据 9.3.5 限制输入数据的类型 9.4 PropertyGrid属性表格控件 9.4.1 PropertyGrid简介 9.4.2 只读的PropertyGrid 9.4.3 对name列强制排序并获得value 9.4.4 自定义编辑器 9.5 分组表格控件——Group 9.5.1 分组表格简介 9.5.2 Ext.grid.GroupingView的配置操作 9.6 可拖放的表格 9.6.1 拖放改变表格的大小 9.6.2 在同一个表格里拖放 9.6.3 表格之间的拖放 9.6.4 表格与树之间的拖放 第10章 设计树状结构布局 10.1 TreePanel的基本使用 10.1.1 创建一棵树 10.1.2 为树生枝展叶 10.1.3 树形的配置 10.1.4 使用TreeLoader获得数据 10.1.5 读取本地JSON数据 10.2 树的事件 10.3 右键菜单 10.4 修改节点的默认图标 10.5 从节点弹出对话框 10.6 节点提示信息 10.7 为节点设置超链接 10.8 树形的拖放 10.8.1 节点拖放的3种形式 10.8.2 叶子不能append 10.8.3 判断拖放的目标 10.8.4 树之间的拖放 10.9 树形过滤器TreeFilter 10.10 利用TreeSorter对树进行排序 10.11 树形节点视图——Ext.tree.TreeNodeUI 10.12 表格与树形的结合——Ext.ux.tree.ColumnTree 第11章 其他布局类简介 11.1 标准布局类 11.1.1 折叠布局——AccordionLayout 11.1.2 边框布局——BorderLayout 11.1.3 卡片式布局——CardLayout 11.1.4 列布局——ColoumnLayout 11.1.5 锚点布局——AnchorLayout 11.1.6 自适应布局——FitLayout 11.1.7 ContainerLayout 11.2 与布局有关的其他知识 11.2.1 父类Ext.Container公共配置与xtype的概念 11.2.2 使用Viewport 11.2.3 实现表单元素横排 第12章 ExtJS对Ajax的支持 12.1 Ext.Ajax介绍 12.1.1 Ext.Ajax.request方法详解 12.1.2 Ext.Ajax.request操作示例 12.1.3 Ext.Ajax.request提交XML数据 12.2 Ext.Updater基础 12.2.1 Ext.Updater.update方法 12.2.2 Ext.Updater.update操作示例 12.3 利用Ajax优化Web应用框架 12.3.1 多级联动菜单 12.3.2 Ajax修改用户密码 12.3.3 自动保存的网络记事本 12.3.4 网页计算器 第13章 设计数据驱动模式 13.1 XML/JSON数据格式比较 13.2 容器类MixedCollection 13.3 数据存储基本单元Record与dataField 13.3.1 dataField 13.3.2 Record 13.4 数据存储store 13.4.1 数据载入 13.4.2 对数据进行排序 13.4.3 从store 获取数据 13.4.4 更新store 的数据 13.4.5 加载及显示数据 13.5 数据代理 13.5.1 Ext.data.DataProxy 13.5.2 Ext.data.MemoryProxy 13.5.3 Ext.data.HttpProxy 13.5.4 Ext.data.ScriptTagProxy 13.6 数据读取器 13.6.1 Ext.data.DataReader 13.6.2 Ext.data.ArrayReader 13.6.3 Ext.data.JsonReader 13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data.DwrProxy 13.7.2 Ext.data.DWRTreeLoader 13.7.4 Web服务端配置 13.7.5 服务层接口 第14章 ExtJS扩展 14.1 利用Ext.extend实现继承 14.2 与ExtJS扩展相关的预备知识 14.2.1 定义命名空间 14.2.2 使用xtype 14.3 用户扩展和插件 14.3.1 编写自定义用户扩展 14.3.2 常用插件UploadDialog 14.3.3 常用插件ManagedIFrame 14.4 使用ExtJS制作Flash统计报表 14.4.1 柱状图 14.4.2 折线图 14.4.3 饼状图 14.4.4 柱状栈图 第15章 调试JavaScript与HTML 15.1 Firebug的基本使用 15.1.1 开启或关闭Firebug 15.1.2 控制台 15.2 Firebug的应用 15.2.1 源代码调试 15.2.2 CSS调试 15.2.3 脚本调试 15.3 跟踪网络传输状态 15.4 在脚本文件加入调试命令 15.5 在IE使用Firebug 15.5.1 前端调试利器DebugBar 15.5.2 IE下的优秀JavaScript调试工具Companion.JS 15.5.3 DebugBar和Companion.JS的基本操作 15.6 调试技巧 15.6.1 在Firebug直接调试脚本 15.6.2 调试代码运行速度 15.6.3 查看对象属性 第16章 ExtJS案例:商品信息管理系统 16.1 商品信息管理系统功能介绍 16.2 数据库设计和实现 16.2.1 数据库概念结构设计 16.2.2 数据库表设计 16.3 为项目做好准备 16.4 登录界面 16.5 栏目加载 16.6 为项目换肤 16.7 商品信息管理 16.7.1 商品信息的查询 16.7.2 商品信息的添加 16.7.3 商品信息的删除 16.7.4 商品信息的更新 第17章 ExtJS案例:企业任务管理系统 17.1 系统概述 17.2 需求分析 17.3 数据库设计 17.4 员工任务管理 17.4.1 个人任务处理 17.4.2 个人资料编辑 17.5 主管任务管理 17.5.1 部门计划处理 17.5.2 部门人员管理 17.6 系统管理员权限分配
前言 第1章 认识ExtJS 1.1 ExtJS的精彩表现 1.2 ExtJS的前世今生 1.3 是否真的需要学习ExtJS 1.4 ExtJS4.0新特性 1.5 ExtJSUI组件基础 1.6 了解一下类似技术 1.7 本章小结 第2章 开始ExtJS之旅 2.1 认识ExtJS的开发包 2.2 也从Helloworld开始 2.3 ExtJS的基本概念 2.4 非常有用的开发工具 2.4.1 开发插件spket 2.4.2 FullSource 2.4.3 MicrosoftScriptDebugger 2.5 ExtJS对原有JavaScript对象的扩展 2.5.1 Ext.Array 2.5.2 Ext.Date 2.5.3 Ext.Function 2.5.4 Ext.Number 2.5.5 Ext.String 2.5.6 Ext.Object 2.6 本章小结 第3章 ExtJS4.0的基本功能 3.1 ExtJS组件配置说明 3.1.1 JSON介绍 3.1.2 ExtJS组件配置方式介绍 3.2 信息提示框组件介绍 3.2.1 认识Ext.window.MessageBox 3.2.2 Ext.MessageBox.alert() 3.2.3 Ext.MessageBox.confirm() 3.2.4 Ext.MessageBox.prompt() 3.2.5 Ext.MessageBox.wait() 3.2.6 Ext.MessageBox.show() 3.2.7 Ext.window.MessageBox的其他功能 3.3 进度条组件介绍 3.3.1 认识Ext.ProgressBar 3.3.2 手工模式的进度条 3.3.3 自动模式的进度条 3.3.4 自定义样式的进度条样式 3.4 实现工具栏和菜单栏 3.4.1 认识Ext.toolbar.Toolbar 3.4.2 只包含按钮的简单工具栏 3.4.3 包含多种元素的复杂工具栏 3.4.4 启用和禁用工具栏 3.4.5 认识Ext.menu.Menu菜单 3.4.6 最简单的菜单栏 3.4.7 创建二级或多级菜单 3.4.8 将更多组件加入菜单 3.4.9 具有选择框的菜单 3.5 本章小结 第4章 最常用的表单 4.1 表单及表单元素 4.1.1 了解Ext.form.Basic基本表单 4.1.2 认识Ext.form.Panel表单面板 4.1.3 Ext.form.field.Base基础表单字段 4.1.4 Ext.form.field.Text文本域 4.1.5 Ext.form.field.TextArea文本区 4.1.6 Ext.form.field.Number数字输入框 4.1.7 Ext.form.field.Checkbox复选框和Ext.form.field.Radio单选框 4.1.8 Ext.form.CheckboxGroup和Ext.form.RadioGroup 4.1.9 Ext.form.field.Trigger触发字段 4.1.10 Ext.form.field.Spinner微调字段 4.1.11 Ext.form.field.Picker拾取器字段 4.1.12 Ext.form.field.ComboBox组合框 4.1.13 Ext.form.field.Time时间选择框 4.1.14 Ext.form.field.Date日期选择框 4.1.15 Ext.form.field.Hidden隐藏字段 4.1.16 Ext.form.field.HtmlEditor编辑器字段 4.1.17 Ext.form.field.Display只读文本字段 4.1.18 Ext.form.Label标签字段 4.1.19 Ext.form.FieldSet字段集 4.1.20 Ext.form.FieldContainer容器字段 4.1.21 Ext.form.field.File文件上传字段 4.2 实现表单验证 4.2.1 常见的验证类型 4.2.2 表单验证(VType) 4.2.3 自定义VType验证 4.3 表单的提交和加载 4.3.1 Ext.form.action.Action基础 4.3.2 Ajax模式的表单数据加载 4.3.3 Ajax模式的表单数据提交 4.3.4 标准模式的表单数据提交 4.3.5 使用Direct技术 4.4 本章小结 第5章 面板及布局类 5.1 面板panel 5.1.1 认识Ext.panel.Panel 5.1.2 Ext.panel.Panel的主要功能 5.1.3 使用Ext.panel.Panel 5.2 标准布局类 5.2.1 Auto自动布局 5.2.2 Fit自适应布局 5.2.3 Accordion折叠布局 5.2.4 Card卡片式布局 5.2.5 Anchor锚点布局 5.2.6 Absolute绝对位置布局 5.2.7 CheckboxGroup复选框组布局 5.2.8 Column列布局 5.2.9 Table表格布局 5.2.1 0Border边框布局 5.2.1 1Box盒布局 5.3 使用ViewPort 5.4 Ext.tab.Panel页签 5.5 本章小结 第6章 常用工具类与函数 6.1 非常有用的Ext.core.Element 6.2 Ext常用函数 6.2.1 Ext.onReady() 6.2.2 Ext.get() 6.2.3 Ext.select() 6.2.4 Ext.query() 6.2.5 Ext.getCmp() 6.2.6 Ext.getDom() 6.2.7 Ext.isEmpty() 6.2.8 Ext.namespace() 6.2.9 Ext.each() 6.2.1 0Ext.apply() 6.2.1 1Ext.encode() 6.2.1 2Ext.htmlDecode() 6.2.1 3Ext.typeOf() 6.3 Ext.core.DomHelper 6.3.1 Ext.core.DomHepler.append() 6.3.2 Ext.core.DomHelper.applyStyles() 6.3.3 createTemplate() 6.3.4 insertAfter() 6.3.5 insertBefore() 6.3.6 insertFirst() 6.3.7 insertHtml() 6.3.8 overwrite() 6.4 Ext.core.DomQuery 6.4.1 compile() 6.4.2 filter() 6.4.3 is() 6.4.4 jsSelect() 6.4.5 selectNode() 6.5 Ext.util.CSS 6.5.1 createStyleSheet() 6.5.2 getRule() 6.5.3 swapStyleSheet() 6.5.4 removeStyleSheet() 6.6 Ext.util.ClickRepeater 6.6.1 click() 6.6.2 mousedown() 6.6.3 mouseup() 6.7 Ext.util.DelayedTask提供setTimeout的简单替代 6.7.1 cancle() 6.7.2 delay() 6.8 Ext.util.Format提供常用的格式化方法 6.8.1 ellipsis() 6.8.2 capitalize() 6.8.3 date() 6.8.4 htmlEncode() 6.8.5 htmlDecode() 6.8.6 stripTags() 6.8.7 substr() 6.8.8 lowercase() 6.8.9 number() 6.8.10 round() 6.9 Ext.util.JSON编码和解码Json对象 6.9.1 decode() 6.9.2 encode() 6.10 Ext.util.MixedCollection 6.10.1 向集合加入对象 6.10.2 将数组的对象加入到集合 6.10.3 移除集合的对象 6.10.4 克隆集合 6.10.5 匹配集合关联对象 6.10.6 迭代集合的对象调用指定的方法 6.10.7 获取集合的对象 6.10.8 该类的其他一些有用的方法 6.10.9 该类重要的事件(Events) 6.11 Ext.util.TaskRunner 6.11.1 构造函数 6.11.2 启动一个线程start() 6.11.3 停止一个线程stop() 6.11.4 停止所有的线程stopAll() 6.12 Ext.util.TextMetrics得到块状化文本规格 6.12.1 块的绑定 6.12.2 实例化对象 6.12.3 获取文本的高度 6.12.4 获取文本的宽、高 6.12.5 获取文本的宽度 6.12.6 获取指定节点内文本块的宽、高 6.12.7 指定文本块的宽 6.13 Ext.KeyNav为元素提供简单的按键处理方法 6.13.1 实例化一个键盘绑定对象 6.13.2 废弃原有键盘绑定 6.13.3 将废弃的键盘绑定重新生效 6.14 Ext.KeyMap提供更灵活强大的对按键的处理方法 6.14.1 构造函数 6.14.2 给对象添加键盘绑定 6.14.3 废弃已绑定到KeyMap的配置 6.14.4 将KeyMap或废弃的配置重新生效 6.14.5 获取当前KeyMap配置是否为有效 6.14.6 事件绑定函数 6.15 本章小结 第7章 让ExtJS开始响应事件 第8章 常见Web框架的ExtJS改造 第9章 ExtJS对Ajax的支持 第10章 增强型模板 第11章 数据模型 第12章 Grid组件 第13章 Tree组件 第14章 ExtJS与服务端框架的整合 第15章 主题 第16章 Ext.Direct 第17章 Draw图形 第18章 Chart图表 附录A
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、对Ajax的支持以及如何调试等。最后利用一个商品信息管理系统和一个企业任务管理系统,向读者演示了ExtJS在实际项目的应用以及实现流程。   《精通JS脚本之ExtJS框架》附有配套光盘,提供了书实例的源代码和视频教学文件。此外,读者还可以通过访问itzcn网站来获得即时在线帮助。   《精通JS脚本之ExtJS框架》可以作为Web开发的自学参考书,也可以作为RIA Web程序开发的培训教材。 第1章 JavaScript入门必备 1.1 JavaScript语言概述 1.1.1 JavaScript简介 1.1.2 JavaScript特点 1.1.3 JavaScript与Java 1.2 第一个JavaScript程序 1.2.1 嵌入JavaScript 1.2.2 链接外部JavaScript文件 1.2.3 注意事项 1.3 基础语法 1.3.1 数据类型 1.3.2 变量与常量 1.3.3 运算符 1.4 流程控制语句 1.4.1 if条件语句 1.4.2 switch条件语句 1.4.3 while循环语句 1.4.4 do while循环语句 1.4.5 for循环语句 1.4.6 for in循环语句 1.4.7 try catch finally语句 1.4.8 其他语句 第2章 JavaScript浏览器对象模型与事件处理 2.1 浏览器对象模型 2.1.1 文档对象 2.1.2 表单及其元素对象 2.1.3 浏览器信息对象 2.1.4 窗口对象 2.1.5 网址对象 2.1.6 历史记录对象 2.2 基本事件处理 2.3 2级DOM事件模型 2.3.1 事件传播 2.3.2 注册事件处理程序 2.3.3 event对象 2.4 常用事件 2.4.1 键盘事件 2.4.2 鼠标事件 2.4.3 页面事件 第3章 开始使用ExtJS 3.1 ExtJS概述 3.1.1 ExtJS简介 3.1.2 ExtJS的基本概念 3.1.3 ExtJS与常见JavaScript库的介绍与对比 3.2 创建第一个程序 3.2.1 下载ExtJS 3.2.2 部署到开发工具 3.2.3 编写HelloWorld.html 3.2.4 运行调试ExtJS 3.3 辅助开发 3.3.1 调试工具Firebug 3.3.2 开发利器Spket 第4章 ExtJS事件机制 4.1 设计模式——观察者模式 4.2 自定义事件 4.3 浏览器事件 4.4 ExtJS的事件 4.4.1 Function.call()/apply()方法 4.4.2 函数的作用域 4.4.3 Ext.lib.Event事件 4.4.4 Ext.util.Observable事件 4.4.5 Ext.EventManager事件 4.4.6 Ext.EventObject事件 4.5 各种事件登记方式 4.5.1 传统式登记 4.5.2 内联式登记 4.5.3 Dom Level2登记 4.6 高级组件事件 4.7 ExtJS键盘事件 第5章 ExtJS组件 5.1 核心组件 5.1.1 ExtJS组件结构 5.1.2 Ext.Component 5.1.3 Ext.BoxComponent 5.1.4 Ext.Container 5.1.5 Ext.Panel 5.1.6 Ext.TabPanel 5.2 信息提示框组件 5.2.1 Ext.MessageBox简介 5.2.2 Ext.MessageBox.alert() 5.2.3 Ext.MessageBox.confirm() 5.2.4 Ext.MessageBox.prompt() 5.2.5 Ext.MessageBox.wait() 5.2.6 Ext.MessageBox.show() 5.2.7 Ext.MessageBox的其他功能 5.3 进度条组件 5.3.1 Ext.ProgressBar简介 5.3.2 手工模式的进度条 5.3.3 自动模式的进度条 5.3.4 自定义样式的进度条 5.4 工具栏和菜单栏 5.4.1 Ext.Toolbar简介 5.4.2

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧