EXTJS 四 学习笔记

EXTJS 4 学习笔记1、ComboBox setValue() 问题有时 combobox setValue()不起作用,或者将值通过转换成model

EXTJS 4 学习笔记

1、ComboBox setValue() 问题

有时 combobox setValue()不起作用,或者将值通过转换成model对象后,再向combobox设置值时,下端出现红线。

这个是因为combobox 的 store 可选列表还未初始化的原因,也就是store还未load。

解决办法:

(1)通过EXTJS 4的mvc结构,在controller中的 store 属性配置中加上 combobox 的 store类。如下:


Ext.define('Tms.controller.MyController', {

/**

* 别名

* @type String

*/

alias : 'widget.myController',

// 继承

extend : 'Ext.app.Controller',

// 这里配置的store都会预先加载

stores : ['ComboboxStore']

});

(2)在store的load事件中完成setValue()。如下:

combobox.store.on('load',function(){// 在这里未combobox设置值});


2、EXTJS项目发布问题

下载ext部署工具,SenchaSDKTools-1.2.3。

部署过程中遇到了不少问题:

(1)生成.jsb3文件,我是通过URL的方式来生成的,由于系统访问要求登录(单点登录),

通过以下命令 :

sencha create jsb -a http://localhost/helloext/index.html -p app.jsb3

无法正确生成jsb文件(访问被单点登录拦截)

解决办法:

取消系统单点登录配置,自己创建一个过滤器,在过滤器中手动获取用户信息,将其设置的session中;或者修改需要在session中提取用户信息的代码,将用户信息直接写到代码中。

(2)成功访问系统后,还是无法正常生产jsb文件,原因是index.jsp中处在,<% ?%>代码块,去掉这些代码块。

(3)取消jsp中的代码块后,还是无法正常生成。原因:app.js中

//Ext.onReady(function(){ ? ? 不能把代码写在 Ext.onReady 函数中

Ext.application({

...


});

//});

(4)正常生成jsb文件后,通过以下命令:


sencha build -p app.jsb3 -d .



生成的app-all.js文件是没有经过压缩的,有3M多。

在网上有人说是js文件的编码问题,

修改D:\Program Files\SenchaSDKTools-1.2.3\jsbuilder\src\Project.js ?165 行 在后面加上 ?--charset utf-8

但是试了很多次都没效果。找不到解决办法。


最后在网上自己下载了yui的 ?yuicompressor.jar 压缩工具进行代码压缩。

?

?

3、 ?Ext GRID 编辑控制

?

var editing = Ext.create('Ext.grid.plugin.CellEditing',{clicksToEdit : 1,listeners : {beforeedit : function(e, eOpts) {var update = e.record;if (update) {var status = update.get('tdStatus');if ('2' == status || '5' == status) {Ext.Msg.alert('操作失败', '任务正在评审中,无法编辑!');return false;}} else {return false;}}}});