日期:2014-05-16  浏览次数:20329 次

Extjs--编写时的常用小代码和注意点

1.    当对应表没有自增主键但是值又必须唯一时,

解决:

                        //添加 角色序号不能重复 的逻辑
                        var m = grid.store.getModifiedRecords();   //获得grid中修改后的值(包括 编辑的 和 新增的)
                        var codeRepeat = "";
			store.each(function(record) {
			    if(record.get('roleCode') == m[i].get('roleCode')){
			    	codeRepeat += "repeat";     //新增的行内容会自动加入store中,each的时候总是能找到一个自己,若出                                                                   //现两次表示有重复
			    };
			});
			if(codeRepeat == "repeatrepeat"){
			    Ext.Msg.alert('信息提示', '角色序号不能重复!');  //本来想在each里面进行Ext.Msg.alert的,但是貌似不行                                                                                   //所以只能到外面来了
			    m[i].set('roleCode',"");                          //清除对应的重复字段的值
			    return false;
			}

2.    对于Grid中某些字段编辑时不可修改,但新建时需要可以修改的问题

解决:利用flag字段对“新增”和“修改”的区别判断

                    在dao中传到前台的json中增加字段flag并设置默认值,页面新建时flag默认为空即可

 grid.on('beforeedit',function(e){          //在grid可编辑之前进行对应的判断
   		if((e.column==1)&&(e.record.get('flag')=='1')){   //e.column为对应的列,1为第一列
   			e.cancel=true;
   		}
    });


3.    注意点:java程序中查询的是数据库中 commit的数据 pl/sql中查询的是commit之后的数据

还不知道为什么


4.  FormPanel 数据提交时的技巧:如果允许的话,采用 先全部删除 再添加对应右侧所选全部数据



5.    js文件进行复制时:不要alt+a+copy  直接copy整个文件再更名  否则无法加载效果可能是格式编码问题