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

ExtJs开发总结1

阅读更多

本文链接:http://witmax.cn/extjs-notes.html

之前做过一阵的ExtJs开发,从最傻的符号问题,到后来的渲染问题都碰到过。下面是个人开发过程中做的一些总结,多是问题的应对:

1、引入js和css文件时注意文件的路径问题;

2、导入ext-base.js后注意设置Ext.BLANK_IMAGE_URL的值(透明图片s.gif位置);

3、IE提示“缺少标识符,字符串或数字”错误,为配置时 “}”前多了逗号,且所处位置在Ext.onReady在同一个js文件

4、IE提示变量未定义,一般为有语法错误,如多余了”,”等

5、“无效字符”错误,可能是将”,”打成了”,”了

6、”缺少’}'”错误,问题是多个参数之间缺少了”,”导致

7、加载文件较多时,使用ExtJs可做一个加载提示

8、ext-base.js引入必须在ext-all.js之前

9、Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
初始化Ext状态管理器,在Cookie中记录用户的操作状态,如果不启用,象刷新时就不会保存当前的状态,而是重新加载
如果窗口中有用可拖动面板的话,你在拖动后如果启动了Ext.state.Manager.setProvider(new Ext.state.CookieProvider()),就算刷新后面板仍然会在你拖动后的位置。如果不启用的话是不是就会按照默认的排列方式排列

10、对浏览器禁用javascript的提示
<noscript class=”noticeDialog”><div>
<p>请开启浏览器的 JavaScript 支持!否则不能正常使用本系统<br>启用之后,刷新页面即可</p>
</div></noscript>

11、TabPanel中放置复杂组件时,注意需要设置TabPanel的Width

12、extjs中文字体在firefox里显示偏小的问题,解决方法是再创建一个名为ext-patch.css的css文件,内容见http://www.phpchina.com/html/78/78-28624.html

13、中文化问题,在 ext-all.js 后面,挂上 ext-lang-zh_CN.js 即可,如:
<script type=”text/javascript” src=”<%=contextPath%>/public/js/ext-base.js”></script>
<script type=”text/javascript” src=”<%=contextPath%>/public/js/ext-all.js”></script>
<script type=”text/javascript” src=”<%=contextPath%>/public/js/ext-lang-zh_CN.js”></script>

14、ComboBox加载后自动选择第一项
var pn_zlfx_cbb_grade = new Ext.form.ComboBox({
displayField: ‘name’,
valueField: ‘id’,
triggerAction: ‘all’,
width: 80,
lazyInit: false,
mode: ‘local’,
editable: false,
forceSelection: true,
store: new Ext.data.JsonStore({
url: SITE_URL+’get_zlfx.asp?grade_id=0′,
fields: ['id', 'name'],
root: ‘data’,
autoLoad: true,
listeners:{
load: function(store, records, options){
if (records.length != 0){
pn_zlfx_cbb_grade.setValue(records[0].data.id);
}
}
}
})

15、JsonStore排序:sortInfo: {field: “name”, direction: “ASC|DESC”}

16、Extjs类的配置属性是不能被动态配置的,就如同上面这样的写法,当然,可能可以通过调用或设置某些公共的方法和属性来改变这些配置属性,但不能直接设置.

17、xhtml strict模式:<!DOCTYPE html
PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>

18、Html文档<script>标签中的js代码放在<![CDATA[和]]>之间,使xhtml验证时忽略中间的内容

19、JsonStore添加Record
var orgaListRecord = new Ext.data.Record.create([
{name: 'id_combo1'},
{name : 'name'}
]);
var orgaList = new Ext.data.JsonStore({
url: ‘./get_organisme.php’,
root: ‘orga’,
fields: orgaListRecord
});
orgaList.add([
new orgaListRecord({'id_combo1': 3,'name': 'Other'})
]);
orgaList.load({add: true}); // instead of orgaList.load();

20、数据加载前须判断是否有数据:
if (typeof(pn_zlfx_gp_mark_subjects)==”undefined” || typeof(pn_zlfx_gp_mark_subjects.data)==”undefined”)
pn_zlfx_gp_setting.store.removeAll();
else
pn_zlfx_gp_setting.store.loadData(pn_zlfx_gp_mark_subjects);

21、尽量将处理过程放在关键位置,减少重复代码

22、默认排序方式:sortDir

23、服务器返回的JSON数据字段用’或”括起来,避免与js关键词与保留字冲突

24、Ext.encode()出错,问题是json数据有问题

25、store增加totalProperty配置,可用store.getCount()获取

26、store中文排序异常问题,通过重载Ext.data.Store.prototype.applySort函数来解决

27、store.load()是异步操作,如果希望在数据载入后再执行操作,可以通过以下方式执行:
store.load({
callback: function (records) {
alert(store.getTotalCount());
}
});

28、 EXTJS items不能显示问题收藏
有时经常碰到添加items时不能显示,郁闷不得行~~
经不断测试可能有如下几个方法可以解决:
1)试添加:Layout:’fit’
2)若xtype为’panel’,可试添加:
listeners: {
‘activate’: function(p) {p.doLayout();}
,single:true
}
3)若xtype为’tabpanel’,可试添加:
layoutOnTabChange:true
总的来说是cmp.doLayout()问题….

29、Ext.ajax.request增加form和isUpload:true时,请求方式为enctype=”multipart/form-data”传值,asp中需特别解析

30、ComboBox增加mode:’local’配置来手动控制数据载入,同时可防止数据的二次加载

31、要使ComboBox手动输入的值能得到提交,需要增加ComboBox的Blur事件处理函数
onComboBoxBlur: function(field){
field.setValue(field.getRawValue());
}

32、Firebug显示所有Extjs组件事件
Ext.util.Observable.prototype.fireEvent = Ext.util.Observable.prototype.fireEvent.createInterceptor(function() {
console.log(arguments);
return true;
});

33、工具栏Toolbar内容的增删
var tb = this.gp.getTopToolbar();
// 删除工具栏内容
var i = tb.items.getCount();
while(i){
Ext.fly(tb.items.get(i).getEl()).remove();
tb.items.removeAt(i);
}
// 重新添加工具栏内容
tb.add(‘包括(’, this.cbgType, ‘)’);

34、Ext.ux.form.LovCombo不能设置forceSelection为true,否则当控件失去焦点时显示值会清空

35、IE下Ext.GridPanel的autoWidth或者layout:’fit’会将宽度拉的很长的解决办法:

var grid = new Ext.grid.GridPanel({

bodyStyle:’width:100%’,

autoWidth:true,

…….

});
36、Ext.GridPanel加了CellSelection后,如设置viewConfig:{forceFit:true}点击单元格会导致表格跳动
解决方案:http://www.extjs.com/forum/showthread.php?p=282928#post282928

37、ComboBox执行Filter第一次无效的解决是 增加lastQuery:” 配置

38、Panel内部高度自适应+自动出现滚动条,增加以下配置
,autoScroll: true
,style:”height:100%;”
,bodyStyle:”height:100%;”

39、某些情况下TabPanel里加载iframe第一次不显示,可在panel显示后重新设置一下iframe的src强制加载一遍

 

分享到:
评论

相关推荐

    EXTJS开发总结.pdf

    在EXTJS开发中,与服务器端的通信是一个关键问题。EXTJS不自带服务器端适配层,因此需要开发者自行处理数据结构。主要的通信方式包括: 1. 使用`Ext.Ajax.request`进行异步请求,服务器可以返回JSON或HTML片段。 2. ...

    ExtJs 开发指南书籍 实例 可视化工具

    5. **ExjsHotel.rar**:这个可能是基于ExtJs开发的一个酒店预订系统的示例项目,开发者可以从中学习到如何构建一个完整的业务应用,包括如何组织代码、如何实现交互逻辑、如何处理用户输入等。 6. **extjs实用开发...

    Extjs开发总结(转).pdf

    ExtJS是一种富互联网应用(RIA)开发框架,专注于构建客户端应用程序。与Prototype和jQuery等轻量级库不同,ExtJS提供了完整的组件模型和丰富的用户...在实际项目中,不断学习和总结经验,是提升ExtJS开发技能的关键。

    EXTJS开发总结[参考].pdf

    1. 利用EXTJS的方言:EXTJS提供了丰富的内置方法,如DOM操作、事件绑定等,使用这些方法可以提高代码的统一性和可维护性。 2. 自定义事件:EXTJS的自定义事件机制支持一对多的通知,并且可以中途停止事件传播,增加...

    ExtJS开发插件及Ext包

    总结,ExtJS开发插件和管理Ext包是构建高效、可扩展的Web应用的关键技术。通过学习和熟练掌握这些技能,开发者能够利用ExtJS的强大功能构建出功能丰富、用户体验优秀的应用程序。同时,利用如Spket这样的专业IDE,...

    php+ExtJS 开发实战

    - **最佳实践**: 分享了一些在开发过程中积累的最佳实践,包括代码优化、性能提升等方面的经验总结。 #### 6. 学习资源与进阶指南 对于初学者来说,本书不仅提供了详细的理论介绍,还附带了丰富的实践指导。 - **...

    extjs网页控件开发

    ExtJS是一种基于JavaScript的...总结起来,"extjs网页控件开发"涵盖了ExtJS的核心技术,包括图表的创建和多级联动下拉列表框的实现。通过深入学习和实践,不仅可以提高开发效率,还能打造出具有专业水准的Web应用程序。

    asp.net与extjs开发点卡在线销售系统__0525.rar

    总结,这个“asp.net与extjs开发点卡在线销售系统”项目展示了如何结合两种技术构建一个完整的电子商务平台,涵盖了前端交互、后端处理、数据管理等多个方面,对于学习ASP.NET和EXTJS的开发者来说,是一个很好的实践...

    EXTJS Grid总结例子

    EXTJS Grid是一款强大的数据展示组件,广泛应用于Web应用开发中,尤其在数据密集型界面设计时,EXTJS Grid以其高效的数据加载、灵活的分页、排序、过滤和自定义功能而受到开发者青睐。本总结例子将深入探讨EXTJS ...

    合同管理系统 extjs开发的 让大家一起学习

    总结,EXTJS为合同管理系统的开发带来了高效、灵活和丰富的用户界面,通过其强大的功能,可以打造出满足企业需求的合同管理平台,提升企业的合同管理效率和规范化程度。无论是前端界面设计还是后台数据交互,EXTJS都...

    Extjs 各种总结和新实例

    本人对extjs 各种开发的亲身总结,包括多种列表、树、以及很多扩展功能

    extjs 总结

    1. **配置项** - `root`: TreePanel 的根节点,通常是整个树的起点。 - `rootVisible`: 是否显示根节点,默认情况下,根节点是可见的。 - `useArrows`: 是否启用Vista样式的箭头图标,表示节点的展开和折叠状态,...

    搭建利用Extjs库开发的环境

    为了更好地利用Extjs进行开发,本文将详细介绍如何在Spket IDE中配置Extjs开发环境,使得开发者能够享受到强大的代码提示与调试支持,提高开发效率。 #### 二、准备工作 在开始配置前,请确保以下条件已满足: 1. ...

    action+extjs开发

    总结来说,Action+ExtJS开发是将Java后端的业务处理能力和JavaScript前端的用户交互优势相结合,提供高性能、交互性强的Web应用解决方案。开发者需要熟练掌握Struts2框架以及ExtJS库,了解MVC模式,理解HTTP请求响应...

    EXTJS与.NET开发

    总结来说,EXTJS为.NET开发者提供了强大的前端开发工具,使他们能够创建出功能丰富、用户体验优秀的Web应用。通过理解并熟练掌握EXTJS与.NET的集成技术,开发者可以提高开发效率,同时提升应用程序的性能和用户体验...

    EXTJS4开发的图片文章管理项目实例

    总结来说,这个EXTJS4开发的图片文章管理项目实例展示了前端EXTJS4的强大UI构建能力,后端JAVA的稳定处理性能,以及MYSQL数据库的数据存储功能。通过学习这个实例,开发者可以深入理解EXTJS4的MVC架构,JAVA的Web...

    extjs实用开发指南

    从组件使用、MVC架构、数据绑定到事件处理、AJAX通信,以及主题定制和响应式设计,这本书将涵盖EXTJS开发的各个方面,是提升EXTJS技能和理解的宝贵资源。通过阅读并实践其中的示例,开发者能够掌握EXTJS的核心概念和...

    ExtJs可视化开发工具3.0

    总结起来,ExtJs可视化开发工具3.0是一个强大的开发辅助工具,它利用直观的可视化界面,简化了基于ExtJS的Web应用开发流程,提升了开发效率,降低了学习门槛,为开发者带来更加便捷和高效的开发体验。通过这个工具,...

    ExtJS 图形开发工具

    通过这款工具,开发者可以创建模型、控制器、视图和存储,同时实时查看应用程序的外观和行为,大大简化了ExtJS开发过程。 总结来说,"ExtJS 图形开发工具"是面向ExtJS开发者的强大助手,通过可视化设计和代码生成,...

Global site tag (gtag.js) - Google Analytics