根据不同条件覆盖 ExtJs 4 中的日期字段格式

Posted

技术标签:

【中文标题】根据不同条件覆盖 ExtJs 4 中的日期字段格式【英文标题】:Overriding datefield format in ExtJs 4 according to different conditions 【发布时间】:2014-06-24 15:39:01 【问题描述】:

我想根据我来自的国家/地区覆盖日期字段格式。我编写了以下函数,然后使用 Ext.Loader.loadScript 来应用它。但这并没有覆盖日期字段格式。我正在 ExtJS 4 中实现这一点。有人可以建议我如何覆盖 datefiled 格式。谢谢你:)

function fnc() 
                    switch (params.country) 
                    case 'USA':
                        Ext.override(Ext.form.DateField, 
                            format : 'm/d/Y'
                        );

                    Ext.override(Ext.grid.DateColumn, 
                        format : 'm/d/Y'
                    );

                    Ext.override(Ext.picker.Date, 
                        format : 'm/d/Y'
                    );
                    break;

                case 'MEX':
                    Ext.override(Ext.form.DateField, 
                        format : 'd/m/Y'
                    );

                    Ext.override(Ext.grid.DateColumn, 
                        format : 'd/m/Y'
                    );

                    Ext.override(Ext.picker.Date, 
                        format : 'd/m/Y'
                    );

                    break;

                default:
                    Ext.override(Ext.form.DateField, 
                        format : 'm/d/Y'
                    );

                    Ext.override(Ext.grid.DateColumn, 
                        format : 'm/d/Y'
                    );

                    Ext.override(Ext.picker.Date, 
                        format : 'm/d/Y'
                    );
                    break;

            ;
        

【问题讨论】:

我很确定在您的页面最初加载时必须进行覆盖,以便按照您的预期应用它们。这个函数什么时候运行? 这个函数在launch函数中运行 【参考方案1】:

它现在正在工作, 开始时在app.js的launch函数中添加如下,

         Ext.Loader.loadScript(url:URL,onLoad:function()
             debugger;

             var dateObj = ;
             dateObj.format = "";

        switch(country) 
            case "USA":
                dateObj.format = "m/d/Y";
            break;

            case "MEX":
                dateObj.format = "d/m/Y";
            break;

            default: // USA, etc. 
                dateObj.format = "m/d/Y";
        
        Ext.override(Ext.form.field.Date, dateObj);      
         
         );

并且不要在字段定义中指定任何格式,

【讨论】:

以上是关于根据不同条件覆盖 ExtJs 4 中的日期字段格式的主要内容,如果未能解决你的问题,请参考以下文章

Extjs 3.4 中的日期格式不呈现和显示

ExtJS 'datefield' 验证覆盖

JavaScript Extjs:根据其他字段的条件,使用自定义类渲染网格中的单元格

带有 extjs 4.1 问题的日期格式

ExtJS:日期字段在选择网格行时显示为空白

Access中的日期格式如何转换?