首页 > 代码库 > Ext的学习记录

Ext的学习记录

学习Ext有一年多了想把Ext的一些基本的写法记录下来:

1.遮罩

var box = Ext.MessageBox.show({
                msg : ‘正在确认数据,请稍候……‘,
                progressText : ‘‘,
                width : 200,
                height : 100,
                progress : false,
                closable : false,
                wait : false
            });

2.Ajax

Ext.Ajax.request({
                url : ‘‘,
                timeout : 10000000,
                method : ‘POST‘,
                success : function(response, optional) {
                    box.hide();
                  var ret = Ext.util.JSON.decode(response.responseText);
                   if(ret.msg != ""){
                        vLongInfo +="\r\n" +  ret.msg;
                       Ext.getCmp("").setValue(vLongInfo);
                    }
                }.createDelegate(this),
                failure : function(response, optional) {
                    box.hide();
                }.createDelegate(this)
            });
        };

3.gridpanel的例子

this.store = new Ext.data.Store({
            baseParams : {limit:50},
            timeout : 99999999,
            reader : new Ext.data.JsonReader({
                totalProperty:‘totalCount‘,
                id : "id",
                root : "result"
            }, [
            
                    {
                        name : ‘v_id‘,
                        mapping : ‘v_id‘
                    },
                
            
                    {
                        name : ‘credit_money‘,
                        mapping : ‘credit_money‘
                    }
              ]),
            proxy : new Ext.data.HttpProxy({
            url : ‘ui/modules/bc/TBCRefundment/tBCFundmentReexamineAction_applyMessage.action‘
            })
        });

        this.panel = new Ext.grid.GridPanel({
            bbar :  new Ext.PagingToolbar({
                xtype         : ‘paging‘,
                pageSize    : 50,
                store        : this.store,
                displayInfo    : true,
                displayMsg    : ‘显示记录从 {0} 到 {1} 总共 {2}‘,
                emptyMsg    : ‘没有记录‘
            }),
            region:"center",
            store : this.store,
            id:"",
            loadMask: {msg:‘正在取数,请稍等!‘},
            border : false,
            /*
            tbar :
            [    
                 ‘模糊查找: ‘,
                {
                     xtype:‘uxSearchField‘,
                     store:this.storeMainPanel,
                     width:130
                 }
            ],
            */
           colModel : new Ext.grid.ColumnModel({
                columns : [

                new Ext.grid.RowNumberer(),
                
                {
                    width : 80,
                    
                    hidden : true,
                    header : ‘v_id‘,
                    dataIndex : ‘v_id‘,
                    sortable : true
                },

      ,
                {
                    width : 150,
                    align:‘Right‘,
                    SortTypes:‘Float‘,
                    hidden : !true,
                    header : ‘金额‘,
                    dataIndex : ‘credit_money‘,
                    sortable : true,
                    renderer : usMoney
                }
              ]
            })
        });

3.gridpanel 的头部和尾部

Ext.namespace(‘func_CwRefundmentInfo‘);
func_CwRefundmentInfo.MainPanel = function(config) {
    Ext.applyIf(this, config);
    this.initUIComponents();
    func_CwRefundmentInfo.MainPanel.superclass.constructor.call(this);
};
Ext.extend(func_CwRefundmentInfo.MainPanel, Ext.Panel, {
    initUIComponents : function() {
        //内容
        
        Ext.apply(this, {
            layout : "fit",
            items : [{
                xtype : "textarea",
                id : "",
                readOnly : true
            }],
            tbar : new Ext.Toolbar([ {
                handler : function(button, event) {
                    this.onImportClick(button, event);
                }.createDelegate(this),
                text : "退款报账确认",
                iconCls : "btn_add"
            }])
        });
        // END OF CODE GENERATION PARTS, DON‘T DELETE CODE ABOVE
    }
});

Ext.reg(‘bc.func_RefundmentReexamine.main‘, bc.func_RefundmentReexamine.main);

4.金额显示的的函数

function usMoney(v)
{
    v = (Math.round((v-0)*100))/100;
    v = (v == Math.floor(v)) ? v + ".00" : ((v*10 == Math.floor(v*10)) ? v + "0" : v);
    v = String(v);
    var ps = v.split(‘.‘);
    var whole = ps[0];
    var sub = ps[1] ? ‘.‘+ ps[1] : ‘.00‘;
    var r = /(\d+)(\d{3})/;
    while (r.test(whole)) {
        whole = whole.replace(r, ‘$1‘ + ‘,‘ + ‘$2‘);
    }
    v = whole + sub;
    if(v.charAt(0) == ‘-‘){
        return ‘-‘ + v.substr(1);
    }
    return "" +  v;
};

5.导入的模板

/**
     * 导入.
     * */
    public String fileUploadList(File file, String fileFileName)throws Exception{
        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
        if(fileFileName==null){
            throw new Exception("请选择文件!");
        }
        if(!fileFileName.substring(fileFileName.length()-3, fileFileName.length()).equals("xls")){
            if(fileFileName.substring(fileFileName.length()-4, fileFileName.length()).equals("xlsx")){
                throw new Exception("暂不支持该版本的excel表格,请将文件另存为后缀名为“.xls”的文件!");
            }else {
                throw new Exception("\""+fileFileName+"\""+"不是Excel文件,请重新选择!");
            }
        }
        /**
         * Workbook.getWorkbook(file)获取要导入的excel文件.
         * wb.getSheet(0)获取excel文件的第一个页签的内容.
         * */
        Workbook wb = Workbook.getWorkbook(file);
        Sheet sheet = wb.getSheet(0);
        /**
         * getCell(int column, int row)锁定单元格位置.
         * getContents()获取单元格内容.
         * Trim() 函数的功能是去掉首尾空格.
         * */
        String column1 = sheet.getCell(0, 0).getContents().toString().trim();
        if(column1.equals("")||!column1.equals("姓名")){
            throw new Exception("检测出错:第1行第1列头不为姓名!");
        }
        String column2 = sheet.getCell(1, 0).getContents().toString().trim();
        if(!column2.equals("性别")){
            throw new Exception("检测出错:第1行第2列头不为性别!");
        }
        String column3 = sheet.getCell(2, 0).getContents().toString().trim();
        if(!column3.equals("年龄")){
            throw new Exception("检测出错:第1行第3列头不为年龄!");
        }
        String column4 = sheet.getCell(3, 0).getContents().toString().trim();
        if(!column4.equals("出生年月")){
            throw new Exception("检测出错:第1行第4列头不为出生年月!");
        }
        String column5 = sheet.getCell(4, 0).getContents().toString().trim();
        if(!column5.equals("学号")){
            throw new Exception("检测出错:第1行第5列头不为学号!");
        }
        String column6 = sheet.getCell(5, 0).getContents().toString().trim();
        if(!column6.equals("专业")){
            throw new Exception("检测出错:第1行第6列头不为专业!");
        }
        String column7 = sheet.getCell(6, 0).getContents().toString().trim();
        if(!column7.equals("入学时间")){
            throw new Exception("检测出错:第1行第7列头不为入学时间!");
        }
        /**
         * 循环遍历当前excel页签的单元格内容,放进list集合.
         * getRows()获取当前excel页签的行数.
         * getRow()获取当前行的数据.
         * */
        for(int i =1;i<sheet.getRows();i++){
            if(sheet.getRow(i)==null||sheet.getRow(i).equals("")){
                continue;
            }
            Map<String,Object> map=new HashMap<String,Object>();
            String studentName = sheet.getCell(0, i).getContents().toString();        
            String sexString = sheet.getCell(1, i).getContents().toString();
            String ageString = sheet.getCell(2, i).getContents().toString();
            String birthday = sheet.getCell(3, i).getContents().toString();
            String studentId = sheet.getCell(4, i).getContents().toString();
            String major = sheet.getCell(5, i).getContents().toString();
            String startDate = sheet.getCell(6, i).getContents().toString();
            /**
             * 校验空值.
             * */
            if(null==studentName||"".equals(studentName)){
                throw new Exception("你导入的文件第"+i+"行的姓名为空,请修改后重新导入!");
            }
            if(null==birthday||"".equals(birthday)){
                throw new Exception("你导入的文件第"+i+"行的出生年月为空,请修改后重新导入!");
            }
            if(null==studentId||"".equals(studentId)){
                throw new Exception("你导入的文件第"+i+"行的学号为空,请修改后重新导入!");
            }
            if(null==major||"".equals(major)){
                throw new Exception("你导入的文件第"+i+"行的专业为空,请修改后重新导入!");
            }
            if(null==startDate||"".equals(startDate)){
                throw new Exception("你导入的文件第"+i+"行的入学时间为空,请修改后重新导入!");
            }
            /**
             * 校验性别是否符合.
             * */
            String sex="0";
            if (null==sexString||sexString.equals("")) {
                sex="0";
            }
            if(sexString.equals("男")){
                sex="0";
            }
            if(sexString.equals("女")){
                sex="1";
            }
            if(sexString.equals("0")){
                sex="0";
            }
            if(sexString.equals("1")){
                sex="1";
            }
            if(!sex.equals("0")&&!sex.equals("1")){
                throw new Exception("您导入的文件第"+i+"行的性别不符合规范,请修改后重新导入!");
            }
            /**
             * 格式化出生年月,校验出生年月是否符合该日期格式.
             * */
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
            try {
                Date bDate=dateFormat.parse(birthday);
                birthday=dateFormat.format(bDate);
            } catch (Exception e) {
                throw new Exception("你导入的文件第"+i+"行的入学时间不符合日期格式,请修改后重新导入!");
            }
            /**
             * 如果年龄为空,则根据出生年自动计算当前年龄.
             * */
            if (null==ageString||ageString.equals("")) {
                Calendar nowDate=Calendar.getInstance();
                int nowYear=nowDate.get(Calendar.YEAR);
                String yString=birthday.substring(0, 4);
                int bYear=Integer.valueOf(yString);
                ageString=(nowYear-bYear)+"";
            }
            /**
             * 校验学号是否为数字.
             * */
            int sId;
            try {
                sId=Integer.parseInt(studentId);
            } catch (Exception e) {
                throw new Exception("你导入的文件第"+i+"行的学号不是数字,请修改后重新导入!");
            }
            /**
             * 格式化入学时间,校验入学时间是否符合该日期格式.
             * */
            try {
                Date date=dateFormat.parse(startDate);
                startDate=dateFormat.format(date);
            } catch (Exception e) {
                throw new Exception("你导入的文件第"+i+"行的入学时间不符合日期格式,请修改后重新导入!");
            }
            /**
             * 校验学号是否重复.
             * */
            List<Object[]> listStudentId= studentInfoDao.checkRepeat(sId);  
            if (listStudentId.size()!=0) {
                throw new Exception("你导入的文件第"+i+"行的学号重复,请修改后重新导入!");
            }
            String id =  UUID.randomUUID().toString();
            
            map.put("studentName", studentName);
            map.put("sex", sex);
            map.put("ageString", ageString);
            map.put("birthday", birthday);
            map.put("studentId", studentId);
            map.put("major", major);
            map.put("startDate", startDate);
            map.put("id", id);
            list.add(map);
        }
        int count=studentInfoDao.fileUploadMenuManager(list);
        return "成功导入"+count+"条数据!";
    }

 

Ext的学习记录