# Ext.namespace('com.faceye.layout');

# Ext.BLANK_IMAGE_URL = 'scripts/ext/resources/images/vista/s.gif';

emptyText:'請選擇您喜歡的顏色',


user = Ext.get('user');// 生成Ext element元素

el = new Ext.Element(user);


<button onclick="location.href='www.baidu.com';">點擊鏈接到百度</button>


window.location.reload(true); //重載頁面


chooser.view.on('contextmenu', function(d, i, n, e){//元素加menu


//ext 窗體操作

//Ext.WindowMgr.each(function(w){w.hide()});//window.location.reload(true);




layout:'fit' 'border' 'table' 'column' 'card'

Ext.QuickTips.init();


disabled:ture,

hidden :true,

closeAction: 'hide' //關閉按鈕效果


target="_blank"http://彈出新窗口


render(document.body);

renderTo: document.body,

applyTo: 'local-states'


animate:true,               // 生機勃勃 特效


layoutOnTabChange :true,    //tabPanel doLayout


labelAlign: 'left',        //form 標簽左對齊


hideLabel :booler          //隱藏標簽


contentEl :'cartT',        //將元素內容讀入到ext組件中。


listeners:{check:onCheck},


hiddenName:'server',       //commbox 獲取值時,返回valueField :"retrunValue",

      //否則返回   displayField: "displayText",


emptyText:'請輸入標題'     //textField為空時顯示的內容


anchor:'90%'               //占用百分之幾的位置


closable: true,           //是否現實關閉按鈕


modal:true,               //是否模態方式顯示窗口


border:true,              //邊框寬度


bodyBorder :true,     


bodyStyle:'padding:5px', //邊的類型設置了內補丁,空余5像素。       


collapsible:true,   //工具條添加收縮按鈕



disabled:true,            //窗體狀態灰色顯示,且不可用


collapsed:coll,           //窗體狀態收縮、true收起--與expandOnShow一起用


tools:tools,              //工具條


expandOnShow : false,     //顯示的時候擴張true為顯示


autoWidth:true,           //自動調節寬度


plain:true,               //將標簽頁頭的背景設置為透明


closable:true,            //有關閉按鈕


closeAction: 'hide',      //關閉按鈕 隱藏窗體


frame:false,              //窗體沒有背景


header:false,             //有窗體頭部


autoScroll: true,          //窗體自動出先滾動條


shadow:false,             //窗體影子


draggable:false,          //窗體是否可拖動


resizable:false,          //窗體不可改變大小


labelSeparator:':',      //標題的分隔符號我們用中文冒號代替英文的冒號(labelSeparator:':')


isVisible();              //窗體顯示


maximizable:true,         //放大縮小窗口


focus(); //焦點


minWidth :30,              //按鈕最大寬度


<a ext:qtip="sssss">ssss</a>




buttons: [{//----------------------------------button

                    id: 'ok-btn',

                    text: '選擇',

                    handler: this.doCallback,

                    scope: this

          }]




Store 讀取回調后的json數組

'load': {fn:function(s){

s.getAt(0).get("expHost")

//-----------------------------------------------------------------------------讀取json

var res = this.cartoonPreview.previewstore.reader.jsonData;

path:res.view[0].url

listeners: {

        'load': {fn:function(s){

        var res1 = s.reader.jsonData;

         if(s.reader.jsonData){

            var res = s.reader.jsonData;

            if(s.getCount()<1){

              st = res.status;

            ms= res.msg;

             switch(st){   


         

              //case


'noconnection': Ext.Msg.alert('提示','由于網絡異常,暫時無法獲取數據'); break;

              case 'error':


Ext.Msg.show({

                                                                        title:'提示:',

                                                                        msg: ms,

                                                                        cls:'cartoon-msg',

                                                                        buttons: Ext.Msg.OK

                                


      }); break;            

             }

            }

            }

         }

           }, scope:this},

        'loadexception':{fn:function(){this.body.update('暫時無法獲取數據');

                                      

        },scope:this}

//-------------------------------------------------------------------------------監聽

listeners: { //默認顯示第一幅圖片

       'load': {fn:function(s){}, scope:this}

}


//new Ext.Element(n).remove(); //移除元素


    var objArray = Ext.DomQuery.select("input[type=radio]");

    Ext.each(objArray, function(obj) {

        var radio = new Ext.form.Radio({

            applyTo : obj

        });

    });


//--ext onClick 按鈕事件添加

   var button = Ext.get('show-btn');

       button.on('click',function(){

       if(!win){

       var win;

    var tools=[{  

     id:'close',

        handler : function(e, target, Window) {

      Window.hide();//

    }


var res = s.reader.jsonData;//---------store

// alert(res.images[0].url);

//------------------------------------------------------------------------鍵盤監聽

content1.el.on('keypress', function(e){

   if (e.getKey() == e.ENTER && this.getValue().length > 0) {

    previewFn();

   }

    });

//------------------------------------------------------------------------數據視圖 取id  

this.thumbTemplate = new Ext.XTemplate(

    '<tpl for=".">',

     '<div class="thumb-wrap" id="{name}" >',

     //'<p class="thumb"><img onload="Haolog.util.Image.resize(this,80,80)"


src="{url}" title="{name}" name="{imageId}" style="display:none" /></p>',

     '<p class="thumb"><img onload="Haolog.util.Image.resize(this,80,80)"


src="{url}" title="{name}" name="{imageId}" style="display:none" /></p>',

    

     '<div>{shortName}</div></div>',

    '</tpl>'

   );

var selNode = this.view.getSelectedNodes();


selNode[0].id

//-------------------------------------------------------------------------------------------


Ext.get('popid').dom.className=str+"-tl"; //樣式切換


//Ext.get('cart_show').alignTo(Ext.get('vv'),'c-c',[0,0],true); // 元素之間的相對定位

CallingCard.win.el.anchorTo(Ext.get('cartoon-myRoomId'),'tl-br',[0,0],false);


this.cp = new Ext.ColorPalette({});//顏色盤

this.cp.colors = ["FFFFFF", "FDF9E1", "EEF1FB","E6F8E4","FAECFB", "FAEFE2", "E4FAF9","FCEDED"];

//----------------form

Ext 亂碼解決


客記端加入以下語句:Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8';


服務器端加入以下語句:arg1.setContentType("text/json; charset=utf-8");

this.buttons=[ previousbut,

                  nextbut

        ];

inputType: 'password'     //顯示為密碼


//------------------------------------------Ext.form.text

allowBlank:false,        //文本框不能為空

nanText : '請輸入數字類型的陰歷!' ,//文本框為數字類型的提示




re = new   RegExp("&nbsp;","ig"); //使用正則表達式將&nbsp空格替換為空格   

    content = content.replace(re," ");  

 


Javascript中為String對象添加trim

<script language=Javascript> //自己動手為string添加Trim

function String.prototype.Trim() {return this.replace(/(^\s*)|(\s*$)/g,"");}

function String.prototype.Ltrim(){return this.replace(/(^\s*)/g, "");}

function String.prototype.Rtrim(){return this.replace(/(\s*$)/g, "");}

alert(" meizz    ".Trim());

</script>

//------------------------------- Ext loading ....


setTimeout(function(){

        Ext.get('loading').remove();

        Ext.get('loading-mask').fadeOut({remove:true});

    }, 250);

//--------------------經典的截取字符串代碼

(1)String.prototype.ellipse = function(maxLength){//增加String屬性

       if(this.length > maxLength){

          return this.substr(0, maxLength-3) + '...';

        }

      return this;

    };

(2)var formatData = function(data){

      data.shortName = data.name.ellipse(15);

      data.sizeString = formatSize(data);

      data.dateString = new Date(data.lastmod).format("m/d/Y g:i a");

      this.lookup[data.name] = data;

      return data;

      };

(3)this.view = new Ext.DataView({

prepareData: formatData.createDelegate(this)

});

//--------------------------------------------------------------------------------------- submit 表單提交


submit:function(w,cho,insertFn){

       var win = w;

       var chooser = cho;

       btn =this.uploadBtn;

       btn.disable();

    

       if(this.uploadPanel.getForm().isValid()){

             this.uploadPanel.getForm().waitMsgTarget =true

            var ch =chooser;

          this.uploadPanel.form.doAction('submit',{// this.uploadPanel.getForm().submit({

                     url: '/qmail/userupload.do?method=saveUserImage',

                     // waitTitle:'請等待...',

                      waitMsg: '您的圖片正在上傳...',

                      headers:'charset=utf-8; ',

                      success: function(form, action){

                      btn.enable();

                     // ch.win.show();

                            if (action.result.status == "ok") {

                           // document.getElementById('cartoon-changeId').click();

                           

                              if(ch.win!=null){

                               ch.win.show();

                   ch.showUser();

                   }  

                                msg('表情上傳成功!,請在<font color=red>“我的上傳”</font>分類中查找您上傳的


表情。');

                                win.hide();

                            }

                            if (action.result.status == "error") {

                           msg(action.result.msg);

                            }

                     },

                        failure: function(){alert("error");}

                 });

      }

    }


//-----------------------------

ext繼承

var Haolog={version:'0.8'};

Ext.namespace('Haolog','Haolog.module','Haolog.form');

Haolog.module.CallingCard = function(config){


Ext.apply(this,config);

Haolog.module.CallingCard.superclass.constructor.call(this);

};


Ext.extend(Haolog.module.CallingCard, Ext.Window, {

   initComponent : function(){

         Haolog.module.CallingCard.superclass.initComponent.call(this);

         this.addEvents(

         );

        // this.on("show",function(win){ }, this.scope || this);

         }

});

//----------------------繼承 2

PaperFactory = function(cfg) {

Ext.apply(this, cfg);

Ext.onReady(this.init, this);

}


Ext.extend(PaperFactory, Ext.util.Observable, {

paperDatas : null,

        init : function() {

   this.htmlTemp = new Ext.XTemplate(

     '<div class="paperDiv"><p class="toName">{toName}:</p>',

     '<p class="content">{content}</p>',

     '<p class="fromName">{fromName}</p></div>');

   this.data = {};

        }




}

//-----------------------------------------------------------form表單的提交

buttons: [{


        text: '保存',


        handler:function(){


               if(simpleForm.form.isValid()){//basicform的客戶端驗證


                       this.disabled=true;


                       simpleForm.form.doAction('submit',{


                                                     ,


                                                     method:'post',


                                                     params:'',


                                                      success:function(form,action){


                                                             Ext.Msg.alert('操作',action.result.data);


                                                             this.disabled=false;


                                                     },


                                                      failure:function(){


                                                             Ext.Msg.alert('操作','保存失?。?);


                                                             this.disabled=false;


                                                     }


                       });


               }


        }           


    },{


        text: '取消',


        handler:function(){simpleForm.form.reset();}


    }]


//---------------------------------------------

xtype:'fieldset',     //可收縮的局部區域


checkboxToggle:true, //checkobx 點選框形式


collapsible: true,    //圖標形式

//---------------------------------------------


contentEl: 'xtheme', //將內js對象渲染到<div id = 'xtheme'></div>上。



//----------------------------------------------------ajax 同步提交

    readDb : function(){

    var cookies = {};   

    var conn = Ext.lib.Ajax.getConnectionObject().conn;

       conn.open("POST", '../../readCookieAction.do',false);

       conn.send(null);

       //成功狀態碼為200

      if (conn.status == "200") {

    // alert("read state"+conn.responseText);

          return Ext.util.JSON.decode(conn.responseText);

          }

      },


---------------------ajax request---

          Ext.Ajax.request({

url: '../../calendarAddAction.do',            

params:{

   birthday: text

   },             

   success: function(response, options) {   

   Ext.MessageBox.alert('恭喜:', '您的個性化日歷               設置成功!', function(btn) {

     });                   

} ,

failure : function() {

Ext.Msg.alert('message init failed');

},

scope : this

});


userdata = Ext.decode(res.responseText);//回調 取值

role =userdata.role||false;

--------------------end ajax


//----------------ajax 回調

   Ext.Ajax.request( {

    url : '../../getMessage.do',

    success : function(action) {

     var decoded = Ext.util.JSON.decode(action.responseText);

     var configs = decoded.configs;

     for (var i = 0, len = configs.length;i < len; i++) {

      var config = configs[i];

      var win = new Ext.Window( {

       title : '編號:' + config.id + ' --- ' + config.createDate,

       iconCls : 'icon-msg',

       width : 255,

       height : 240,

       layout : 'fit',

       collapsible : true,

       resizable : false

      });

      var regs = new RegExp("\n", "gi");

      this.setData( {

       toName : config.toName,

       content : config.content.replace(regs, '<br>'),

       fromName : config.fromName

      });

      win.setPosition(config.x, config.y);

      win.show();

      this.htmlTemp.overwrite(win.body, this.data);

     }

    },

    failure : function() {

     Ext.Msg.alert('message init failed');

    },

    scope : this

   });