事件触发机制
l 给某一个控件添加事件。
obj.addEvents( {search : true });
l 给某一个事件添加处理函数
n 给一个对象或变量添加监听及对应得处理,可以在创建时,通过属性listener添加。
n 或者通过 obj.on(‘event’,function(){})
n 或者通过obj.addListener(“event”,function)
l 出发一个事件,params是要传给事件对应的处理函数的参数
Obj.fireEvent(‘eventName’,params)
工具栏
获取工具栏元素方法
var items = this.preview.topToolbar.items;
items.get('tab').enable();
items.get('win').enable();
Panel及子类
ViewPort
Viewpor代表整个浏览器的显示区域,会被渲染到html body中,并会随着浏览器显示区域大小自动改变。
Window
1. 创建属性一般设置
{ width : 500,
height : 300,
layout : 'fit',
constrain : true, 把窗口的显示位置限制在viewport中
constrainHeader : true,
items : this.form,
plain : true,
closeAction:’hide’
frame : true,
modal : true, 窗口显示时,把窗口以外的元素用一个样式遮盖
buttonAlign : 'center' 按钮居中
}
2. Beforeclose事件
当窗口关闭以前可以做一些操作,如检查窗口内部表单数据的改变与否
winObj.on('beforeclose', this.checkDirty, this);
3. 按钮的获取
要获取window的按钮
winObj.buttons
disableButton:function(){
for(i=0;i<this.buttons.length;i++)
this.buttons[i].disable();//hide()
},
enableButton:function(){
for(i=0;i<this.buttons.length;i++)
this.buttons[i].enable()//show();
}
MessageBox
1. 点击确认/取消后执行function
Ext.MessageBox.alert/confirm ("信息",msg,
function(button, text) {
//当confirm时 判断按钮
if (button == "yes")
//TODO something
}, this);
TabPanel
当页签改变的时候出一个处理函数
Ext.getCmp('tabpanel').on('tabchange',this.tabChange,this);
获取某一个页签,在页签中的给id 属性,通过id获取
Ext.getCmp('tabpanel').getItem('id');
gridPanel
l gridPanel 中gridView是控制grid的展现,通过viewConfig用来配置属性,其中
autoFill : true,forceFit : true 比较重要
l 控制列菜单的显示与否
enableHdMenu:false
l 对具有翻页功能的grid,当通过某一个参数获取store数据时,传输参数的方法必须是通过get方式,即在url后面追加或许通过baseParams传递。不能通过params传参。
l Store.reload 方法用于加载当前页的数据 store.load重新加载数据返回第一页。
l 点击翻页按钮时,会调用store.load方法,并传把start和limit封装作为参数传进去,因此如果对查询结果集进行翻页得时候,要把查询条件要写到baseParams或追加到url中,以使翻页后的数据也是符合查询条件的。
l 当store的加载路径变了,要通过以下方式设置新的url
this.store.proxy =new Ext.data.HttpProxy( {url : newURL } );
FormPanel
数据加载和提交注意事项
l 数据加载时,首先要配置reader,并且从后台返回的数据符合解析器的结构,一般跟后台的封装有关。目前所有数据均已list 或 page 形式返回。
l form.load()方法,当数据加载成功或者失败的时候,都会调用reader解析结果json数据,因此json数据中必须有root(一般为result)指定的结果集。属性successProperty:"success" 用来指定form执行load 成功后要回掉的函数名,默认情况下没有指定。
l 数据加载或提交后,form将回掉success failure函数,submit 和load方法在回掉的处理稍微不同。
Success/failure: function(form, action) {
var jsonData = Ext.util.JSON.decode(action.response.responseText);
if (jsonData) //dosomething}
}
检查是否有脏数据
formPanel.form. isDirty()
一些重要的事件
当表单提交或加载成功(失败)后,触发以下事件
form.form.on('actioncomplete', handler, this);
form.form.on('actionfailed', handler, this);
Combo控件
Combo控件通过store加载数据时会出现的问题
1. 当设emtyText时,如果没有选中选项则会把“请选择…”保存到数据库中
2. 当设readOnly:true 时,一旦选择了某一个选项,则会不到空值,即不选任何值
3. 但是当不只读时,用户又可以自己随便输入值,这时这些值没有对应得key值在数据库中
4. 输入“中”时,下拉框中出现以“中”打头的选项
5. 往数据库传送key而不传value ,即下拉框中显示“中国”,并选中时,提交表单传送“中国”对应得key值 而不是“中国”
下面为解决方法
{
xtype : 'combo',
name : 'clearingid',
fieldLabel : '付款类型',
hiddenName : 'clearingid', //隐藏字段,即往后台传输对应得字段,combo会把
valueField的值存到这个隐藏字段中
store : pay_type_store,// 所要显示的下拉列表的数据对象
valueField : "codeVal1", //store的值域
displayField : "codeName", //store显示域 “中国”
anchor : '100%',
emptyText : '请选择...',
forceSelection : true, //强制只能选择列表中的值 ,解决3
margin: 0cm 0cm 0pt 10.5pt; text-al
分享到:
相关推荐
在EXTJS开发中,我们经常会遇到使用Grid组件展示数据的情况,特别是当数据包含中文字符时,可能会遇到排序问题。EXTJS Grid默认的排序机制对于英文字符处理得较好,但对于中文字符,由于编码和比较规则的不同,可能...
### MyEclipse中使用ExtJS出现缓慢、卡死、白屏问题及解决方法总结 在进行Web开发时,经常会遇到一些工具与框架不兼容或配置不当导致的问题,这些问题往往会影响到开发效率。本文将针对在MyEclipse环境中使用ExtJS...
### 搭建利用Extjs库开发的环境 #### 一、引言 ...同时,通过查看源代码,开发者可以更深入地了解Extjs的工作原理,有助于解决实际开发过程中遇到的问题。希望这篇教程能够帮助你更加高效地使用Extjs进行开发。
在Extjs4开发笔记(一)中,作者提到了其项目文件夹结构中包含的几个主要部分:Data文件夹用于存放数据库文件,其中包含几张用于管理系统的表;Images文件夹存放图片资源;Include文件夹包含ASP服务器端用到的辅助...
总结起来,开发过程中遇到的问题涉及前端的JavaScript交互、UI组件的调试、第三方库的依赖管理以及后端的数据处理策略。这些问题的解决需要深入理解各种技术的工作原理,同时注意优化代码和资源使用,以提高应用的...
Visual Studio 2008作为一款功能强大的集成开发环境(IDE),虽然其主要支持.NET框架的开发,但也可以通过一些技巧和配置来支持其他类型的项目开发,如JavaScript应用开发。本文将详细介绍如何在Visual Studio 2008...
- **项目案例分析**:通过对具体项目的剖析,总结使用ExtJS过程中遇到的问题及解决办法。 - **常见问题解答**:收集整理开发过程中常见的疑问及其解决方案。 - **资源推荐**:推荐一些有用的工具、库和文档资源,...
除了API文档,可能还包括开发者指南、最佳实践、迁移指南等,这些文档帮助开发者更好地理解和使用ExtJS,解决开发过程中遇到的问题。例如,迁移指南会指导从旧版本升级到4.2.2的步骤,避免潜在的兼容性问题。 6. *...
2. **项目开发**:在实际项目中遇到难题时,可以从Examples中寻找类似的解决方案,并根据实际情况进行调整。 3. **代码复用**:很多示例代码可以直接应用于实际项目中,减少了重复劳动。 4. **扩展功能**:通过...
在实际项目中,你应该根据需求选择合适的库版本,并通过`ext.js`或`ext-dev.js`引入EXTJS的核心库,然后根据需要引入其他组件,比如ComboBox和Grid。 总结来说,EXTJS4的ComboBox可以通过自定义事件处理和组件嵌套...
- **社区支持**:ExtJS拥有活跃的社区论坛和支持群组,可以帮助解决开发过程中遇到的问题。 - **实战项目**:推荐学习者参与实际项目,如wlr.easyjf.com提供的基于ExtJS2.0开发的单用户Blog系统源代码,有助于提升...
在深入探讨ExtJS中Tree组件的使用之前,我们先来了解一下ExtJS本身。...在开发过程中,你可能会遇到各种问题,但只要耐心探索,就能找到解决之道。希望这篇指南能帮助你在使用ExtJS的Tree组件时更加得心应手。
总结来说,“extjs+jsp学生管理”项目展示了EXTJS在构建富互联网应用方面的强大功能,以及与JSP、SQLServer结合实现数据管理的有效方式。通过学习和实践这样的项目,开发者可以深化对前后端协作的理解,提升Web应用...
在实际开发过程中,可能会遇到一些特殊情况,例如需要设置或获取嵌套字段的值。此时,可以使用更灵活的方法来操作表单字段: #### 3.1 设置字段值 例如,如果需要设置一个名为`Id`的文本框的值,可以使用`down()`...
总结来说,ExtJS 3.x Upload组件是Web开发中处理文件上传的重要工具,它提供了一套完整的解决方案,包括用户界面、交互逻辑以及与服务器的通信。通过理解和掌握这个组件,开发者可以创建出功能强大且用户体验良好的...
7. **错误处理**:在上传过程中可能会遇到各种错误,如网络问题、服务器错误等,需要有适当的错误提示机制。 8. **多附件支持**:在HTML5中,`<input type="file">`可以通过设置`multiple`属性来允许用户选择多个...
### ExtJS 4 Web Application Development Cookbook #### 一、书籍简介与价值 ...通过本书的学习,读者不仅能够掌握ExtJS的核心知识,还能够了解如何将其应用于实际项目中,提升自己的开发技能。
- 在搭建过程中可能会遇到各种问题,如依赖冲突、浏览器兼容性等,需要逐一解决。 - 常见的解决办法包括升级浏览器版本、调整配置文件等。 ##### 3. 部署环境 - 需要在本地搭建一个开发服务器,如使用Apache或Node....