2014-06-24 31 views
0

我想根據我來自的國家覆蓋datefield格式。我寫了下面的函數,然後使用Ext.Loader.loadScript來應用這個。但這並不是覆蓋日期字段格式。我在ExtJS 4中實現了這個功能。有人建議我如何重寫日期文件格式。謝謝:)根據不同的條件在ExtJs 4中重寫datefield格式

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; 

      }; 
     } 
+0

我非常確定,當您的頁面最初加載時,覆蓋必須發生,以便按照您的預期應用它們。此功能何時運行? – forgivenson

+0

此功能在啓動功能中運行 – user2316489

回答

0

它現在的工作, 添加了在一開始app.js推出功能之後,

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

並且不要在字段定義指定的任何格式,