extjs基础操作

Ext.define('JsApp.com.Util', {
    /**
     *显示新建视图
     * title:新建界面显示的标题
     * xtype:新建界面的别名
     */
    showCreatingView: function (title, xtype) {
        this.shrink.formType = 'create';
        this.shrink
            .setConfig({
                title: title,
                iconCls: 'fa fa-user fa-lg'
            })
            .animShow(Ext.create({
                xtype: xtype
            }));
    },
    /**
     *显示编辑视图
     * record:编辑界面上的数据
     * title:编辑界面上显示的标题
     * xtype:编辑界面的别名
     * datelist:时间控件
     * radiolist:radio集合
     */
    showEditingView: function (record, title, xtype, uneditname, datelist, radiolist) {
        var me = this,
            form = Ext.create({
                xtype: xtype
            });
        form.loadRecord(record);
        if (form.parentView == null) {
            form.parentView = record;
        }
        Ext.Array.each(uneditname, function (name) {
            form.getForm().findField(name).addPlugin("formfielduneditable");
        });
        me.shrink.formType = 'edit';
        me.shrink.setConfig({
            title: title,
            iconCls: 'fa fa-user'
        }).animShow(form);
        if (datelist.length > 0) {
            Ext.Array.each(datelist, function (date) {
                form.getForm().findField(date).setValue(me.renderDate(record.data[date]));
            });
        }
        if (radiolist.length > 0) {
            Ext.Array.each(radiolist, function (radio) {
                var radiofieldlist = form.query("radiofield[name=" + radio + "]");
                Ext.Array.each(radiofieldlist, function (radiofield) {
                    if (radiofield.inputValue == (record.data[radio] == false ? 0 : 1)) {
                        radiofield.setValue(true);
                    }
                });
            });
        }
    },
    /**
    *显示查看视图
    * record:编辑界面上的数据
    * title:编辑界面上显示的标题
    * xtype:编辑界面的别名
    */
    showDetailView: function (record, title, xtype) {
        var me = this,
            form = Ext.create({
                xtype: xtype
            });
        me.shrink.formType = 'detail';
        form.loadRecord(record);
        if (form.parentView == null) {
            form.parentView = record;
        }
        me.shrink.setConfig({
            title: title,
            iconCls: 'fa fa-user'
        }).animShow(form);
    },
    /**
     *删除数据
     * url:删除数据地址
     * params:传递的参数
     * store:界面上的数据存储库
     */
    deleteRecords: function (url, params, store) {
        var me = this;
        Ext.Ajax.request({
            url: url,
            params: params,
            success: function (response, opts) {
                response = Ext.JSON.decode(response.responseText)
                me.toastNo(response.msg);
                store.reload();
            },
            failure: function (response, opts) {
                me.toastNo('操作失败');
            }
        });
    },
    /**
     *刷新界面
     * emptyname:清空的插叙数据框
     * store:界面上的数据存储库
     */
    viewRefresh: function (store, emptyname) {
        var me = this,
            refs = me.getReferences(),
            paramHold = store.paramHold;
        Ext.Array.each(emptyname, function (name) {
            refs[name].setValue('');
        });
        paramHold && paramHold.clear();
        store.loadPage(1);
    },
    /*
     * 查询
     * page:页数
     * params:查询参数
     * store:数据存储库
     */
    search: function (page, params, store) {
        var me = this,
            paramHold = store.paramHold;
        paramHold.clear();
        if (Ext.isObject(page)) {
            params = page;
            page = store.currentPage;
        }
        if (!Ext.isNumber(page)) {
            page = store.currentPage;
        }
        params = params || {};
        paramHold.add(params);
        store.loadPage(page);
    },
    /*
     * 动态给grid增加数据
     * store:表单中的数据存储库
     * dataname:store中的显示字段
     * model:显示字段的映射规则
     */
    addgriddata: function (store, dataname, model) {
        store.add(Ext.create(model, dataname));
    },
    /*
     * 验证grid中的数据
     * form:表单界面
     * store:表单中的动态添加的数据存储库
     * fields:grid中的列表列名称
     * cells:grid中的列表列号
     * grid:列表
     */
    griddatavalidation: function (form, store, fields, cells, grid) {
        var items = store.data.items;
        if (form != null) {
            if (!form.isValid()) {
                return false;
            }
        }
        for (var i = 0; i < items.length; i++) {
            for (var j = 0; j < fields.length; j++) {
                var name = items[i].data[fields[j]];
                if (name == "" || name == undefined) {
                    grid.getView().getCell(i, cells[j]).style.backgroundColor = '#ffb3a7';
                    return false;
                }
            }
        }
        return true;
    },
    /*
     * 收集grid中的数据
     * store:数据存储仓库
     * fields:需要整理的数据名称
     */
    griddatacollection: function (store, fields) {
        var me = this,
            items = store.data.items,
            list = new Array();
        for (var i = 0; i < items.length; i++) {
            var data = {};
            var sign = 0;
            for (var j = 0; j < fields.length; j++) {
                var name = items[i].data[fields[j]];
                data[fields[j]] = name;
                sign = 1;
            }
            if (sign != 0) {
                list.push(data);
            }
        }
        return list;
    },
    /*
     * 跳转回腹肌界面
     * controller:控制器
     * record:父级界面需要显示的数据
     * formview:父级界面的别名
     * title:标题
     */
    showParentView: function (controller, record, formview, title) {
        var me = controller,
            form = Ext.create({
                xtype: formview
            });
        form.loadRecord(record);
        form.parentView = record;
        me.shrink.setConfig({
            title: title,
            iconCls: 'fa fa-user'
        }).animShow(form);
    },
    /**
       * 数据赋值
       * View:需要赋值的视图
       * Names:需要赋值的字段名称
       * Data:赋值的数据
       * unEditableNames:不可编辑的字段名称
       * EditableNames:可编辑的字段名称
    */
    windowAssignment: function (View, Names, Data, unEditableNames, editableNames) {
        Ext.Array.each(Names, function (name) {
            View.query('textfield[name = ' + name + ']')[0].setValue(Data[name]);
        });
        Ext.Array.each(unEditableNames, function (unEditableName) {
            View.query('textfield[name = ' + unEditableName + ']')[0].setEditable(false);
        });
        Ext.Array.each(editableNames, function (editableName) {
            View.query('textfield[name = ' + editableName + ']')[0].setEditable(true);
        });
    },
    /**
       * 对列表界面上的数据进行调整显示
       * value:需要格式化显示的数据
    */
    showData: function (value) {
        if (value != null) {
            var datas = value.split(',');
            var _html = "";
            var length = datas.length - 1;
            if (length > 5) {
                length = 5;
            }
            for (var i = 0; i < length; i++) {
                _html += datas[i] + "</br>";
            }
            if (datas.length > 5) {
                _html = _html + "...";
            }
            else {
                _html = _html.substring(0, _html.length - 5);
            }
            return _html;
        }
        else {
            return "";
        }
    },
    /**
      * 使用post方法导出
      * obj.Url:导出的链接地址
      * obj.PostParams:导出数据的参数
    */
    downloadbypost: function (obj) {
        var me = this,
            fileUri = obj.Url,
            arrParams = obj.PostParams,
            path = Ext.getPath(obj.Url),
            oIpt;
        if (me.isNullOrWhiteSpace(fileUri)) {
            return;
        }
        //创建一个form元素
        var oForm = document.createElement("form");
        oForm.id = "forPost";
        oForm.method = "post";
        oForm.action = path;
        oForm.target = "_self";
        for (var tmpName in arrParams) {
            oIpt = document.createElement("input");
            oIpt.type = "hidden";
            oIpt.name = tmpName;
            oIpt.value = arrParams[tmpName];
            oForm.appendChild(oIpt);
        }
        document.body.appendChild(oForm);
        oForm.submit();
        //删除创建的form
        var oOldFrm = document.getElementById("forPost");
        if (oOldFrm) {
            document.body.removeChild(oOldFrm);
        }
    },
    /**
      * 数据导出
      * store:界面store
      * visibleColumns:需要导出的列
      * columns:界面上的所有列
      * identifier:界面标识
      * title:导出名称
    */
    Export: function (store, visibleColumns, columns, identifier, title, url) {
        var me = this;
        for (var i = 0; i < columns.length; i++) {
            var item = columns[i];
            if (!item.isHidden() && item.text != '操作') {
                visibleColumns[item.dataIndex] = item.text;
            }
        }
        store.paramHold.params.identifier = identifier;
        store.paramHold.params.filename = title + Ext.Date.format(new Date(), 'Y-m-d') + ".xls";
        store.paramHold.params.columns = JSON.stringify(visibleColumns);
        me.downloadbypost({ Url: url, PostParams: store.paramHold.params });
    },
    /**
     * 数据时间格式化
    */
    getDate: function (value) {
        var time = value;
        //如果时间格式为"2018-02-02 00:00:00"格式的话,返回日期;
        //如果时间格式为"2018-02-02T00:00:00"格式的话,返回日期;
        //if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(value) || /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(value)) {
        if (/^\d{4}-\d{2}-\d{2}T|\s\d{2}:\d{2}:\d{2}(?:\.\d{1,2})?$/.test(value)) {
            value = value.replace(/-/g, "/");
            value = value.replace("T", " ");
            value = value.split('.')[0];
            time = new Date(value);
        }
        //如果时间格式为"/Date(1517846400000)/"格式的话,返回日期;
        else if (Ext.isMSDate(value)) {
            var minValue = -62135596800000;
            var currentDate = parseInt(value.slice(6));
            if (minValue == currentDate) {
                return "";
            }

            time = new Date(currentDate);
        }
        //其他情况不处理,直接返回;
        else {
            return value;
        }
        return time;
    },
    /**
    * 渲染日期.如果是最小时间,则认为不是有效值
    * @param {string} value 头像地址.
    */
    renderDate: function (value) {
        if (value != "" && value != null) {
            var time = this.getDate(value);
            return Ext.Date.format(time, 'Y-m-d');
        }
    },
    //将数据转换为时间格式。
    renderDateTime: function (value) {
        var time = this.getDate(value);
        return Ext.Date.format(time, 'Y-m-d H:i:s');
    },
    /**
       * 判断上传附件是否符合要求
       * value:上传附件名称
       * suffixpararms:设置的可上传附件的类型
    */
    complianceSuffix: function (value, suffixpararms) {
        var fileFormat = /\.[a-zA-Z]+$/.exec(value)[0].substring(1);
        var compliance = suffixpararms.join('-').indexOf(fileFormat);
        if (compliance != -1) {
            return true;
        }
        else {
            return false;
        }
    }

});

原文地址:https://blog.csdn.net/qq_20426717/article/details/90764323

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


我有一个问题,我不知道如何解决.我有一个Indy10HTTP服务器.我在许多应用程序中使用过Indy9和Indy10HTTP服务器,从未遇到任何问题.但现在我使用带有ExtJSjavascriptRAI框架的Indy10HTTP服务器.问题是当我提交包含非ansi字符的数据时.例如,当我提交1250代码页中的字母“č”(
我正在使用sdk1.17开发一个Firefox附加组件.它包含一个带有按钮的面板(使用ExtJs开发),我想在用户单击按钮时拍摄当前页面的屏幕截图.在GoogleChrome中,有一个API(chrome.page-capture)就在那里.但我在Firefox中找不到类似的那个.在firefox中如何从main.js完成此任务.解决方法:哦
Ext.define('PhysicsEvaluationSystemV1.view.base.BaseCharts',{extend:'Ext.panel.Panel',xtype:'basecharts',html:'<divid="main"style="width:600px;height:400px;"></div&
默认所有列(假设列3最大3列,动态显示),使用headerRowsEx中的rowspan实现双表头,第一层表头的width也必须要设置正确。使用"grid.getColumnModel().setHidden"即可实现列的隐藏,也不需要动态设置colspan。{xtype:'filtergrid',id:'grid1',cm:newExt.grid.Colu
序言   1.ExtJs是一套很好的后台框架。现在很流行的,我们要会。    2.这是我写ExtJs的第一篇,以后会写很多直到把这框架运用的炉火纯青,走火入魔。ExtJs中的命名空间      我是做.net的,这命名空间名字一样,功能也一样,都是对项目中类进行有效的管理,区分类
我在ExtJs中有这个表单.如果field1不为空,则field2不能为空.但即使听众正在解雇,它也无法正常工作.{xtype:'panel',title:'title1',items:[{xtype:'fieldset',title:'fieldA',items:[{xtype:'t
我可以将HTML元素(如文本和图像)放在面板标题中,如下所示:vargrid=newExt.grid.GridPanel({region:'center',style:'margin:10px',store:newExt.data.Store({data:myData,reader:myReader}),headerCfg:{tag:
解决方案来至于https://www.sencha.com/forum/showthread.php?471410-Bug-in-VS-Code-Plugin-since-VS-Code-Update-(-gt-1-31)在C:\Users\你的用户名\.vscode\extensions\sencha.vscode-extjs-1.0.1\out\src文件下找到Logger.js,打开它。找到代码fs.writeFile(path.join(Platfo
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>MyJSP'index.jsp'
Ext.isEmpty(str,[allowEmptyString])如果str为nullundefinedazero-lengtharrayazero-lengthstring (UnlesstheallowEmptyStringparameterissettotrue)//意思如果第二个参数设为true,则是允许str对象为空字符串该方法返回true 如果不为上面条件则返回fal
以编程方式关闭ExtJS选项卡的正确方法是什么?我需要在IE6中完成这项工作;虽然从TabPanel删除选项卡有效,但我看到IE警告:此页面包含安全和不安全的项目……当我单击选项卡上的X时,我看不到此警告.所以,当我点击X时,显然会发生一些聪明的事情.注意:当我使用tabPanel.remove(aTab,true
1.链接1.1.零散知识链接https://blog.csdn.net/zhaojianrun/article/details/701410711.2.系统教程http://extjs.org.cn/1.3.视频教程1.4.官方网站 
ExtJS有Ext.each()函数,但是有一个map()也隐藏在某个地方吗?我努力了,但没有找到任何可以填补这个角色的东西.这似乎是一件简单而微不足道的事情,一个像Ext这样庞大的JS库显然必须拥有.或者当Ext真的不包含它时,将它添加到Ext的最佳方法是什么.当然,我可以写:Ext.map=function(
我在一家使用Ext-JS的公司工作.该产品目前过度扩展了Ext-JS组件并覆盖了父功能.这使升级变得困难.我们正在保留Ext-JS,但我们正在考虑以非标准的方式使用它.似乎有两个阵营.在一个阵营中,成员们认为我们应该在Ext-JS之上编写一个抽象,以防我们决定在几年内改变框架,希望这样我们不
我想计算今天和给定日期之间的天数,并检查截至今天剩余的天数或今天过去的天数.vartoday=newDate();vardate_to_reply=newDate('2012-10-15');vartimeinmilisec=today.getTime()-date_to_reply.getTime();console.log(Math.floor(timeinmilisec/(1000*60*
我将JSON格式结果发送回保存$quot符号的客户端.由于某些未知原因,代码中断了.这是来自ext-all-debug的代码:doDecode=function(json){returneval("("+json+")");FAILSHERE},这是我的JSON,因为它离开了服务器(据我所知,我希望服务器没有花时间解码这个&quot的
我创建了Ext.Window,里面有一些Ext.form字段.但是当我调整窗口窗体时,元素仍然具有初始宽度和高度.是否需要在窗口大小调整时显式调整表单字段的大小?或者有一些选项可以自动调整表单字段的大小?示例代码:varf_1=newExt.form.TextField({fieldLabel:'Label1'});varf_2=n
我有一个简单的案例,我有一个附加商店的网格.有2个按钮.一个带有修改所选记录的处理程序.一个具有提交所选记录的处理程序.当我选择一个记录并推送编辑时–>编辑发生选择(看起来丢失)如果你调用grid.geSelectionModel().getSelection()你会看到记录仍然被选中.它只是没有这样显
我有这种ajax代码重复了很多地方.如何将其重构为单个方法,以便在成功或失败时仍允许不同的行为.Ext.Ajax.request({url:'ajax.php',params:{action:'getDate'},method:'GET',success:function(result,request){Ext.MessageBox.alert(
Ext.define('JsApp.com.Util',{  /**   *显示新建视图   *title:新建界面显示的标题   *xtype:新建界面的别名   */  showCreatingView:function(title,xtype){    this.shrink.formType='create';    this.shrink