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;
			}
		}
	}
});

你可能感兴趣的:(extjs4 学习笔记)