<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    狂奔 lion

    自強不息

    實現Ext表單對checkBoxGroup的統一管理

    1 對于類型是checkboxgroup的數據,數據庫中保存數據的格式是value1,value2...valueN,其中1~N的數據有可能不存在,如果選中則存在,最后拼接成一個串。
    在Ext中,通過Record對象向FormPanel中的內置對象BasicForm加載數據時,采用的是setValues方法,而setValues第一步要通過Record中定義的name使用findField方法找到表單元素,遺憾的是,繼承了Field的checkboxgroup組件并不能正確的通過getName返回自身引用,所以,需要對getName方法進行重寫,此外,為了適應我們采用的數據格式,對于該組件的setValue(被setValues調用)和getValue(獲取到已加工的數據,此事后話)也要進行重寫。故而對于形如:
    {     
       xtype: 'checkboxgroup',   
       name: 'biztype',     
       width: 
    220,   
       columns: 
    3,   
       fieldLabel: '業務類別',   
       items: [     
           {boxLabel: '類別1', inputValue: '
    01'},     
           {boxLabel: '類別2', inputValue: '
    02'},     
           {boxLabel: '類別3', inputValue: '
    03'},     
           {boxLabel: '類別4', inputValue: '
    04'}     
           ]     
     }  

    的checkboxgroup定義,需重寫類如下:
     
    Ext.override(Ext.form.CheckboxGroup,{    
        
    //在inputValue中找到定義的內容后,設置到items里的各個checkbox中    
        setValue : function(value){   
            
    this.items.each(function(f){   
                
    if(value.indexOf(f.inputValue) != -1){   
                    f.setValue(
    true);   
                }
    else{   
                    f.setValue(
    false);   
                }   
            });   
        },   
        
    //以value1,value2的形式拼接group內的值   
        getValue : function(){   
            
    var re = "";   
            
    this.items.each(function(f){   
                
    if(f.getValue() == true){   
                    re 
    += f.inputValue + ",";   
                }   
            });   
            
    return re.substr(0,re.length - 1);   
        },   
        
    //在Field類中定義的getName方法不符合CheckBoxGroup中默認的定義,因此需要重寫該方法使其可以被BasicForm找到   
        getName : function(){   
            
    return this.name;   
        }   
    });

    2 通過內置對象basicForm的getValues方法可以獲取到一個form的完整json數據,但遺憾的事,這里取到的是dom的raw數據,類似emptyText的數據也會被返回,而Field的getValue方法不存在這個問題,所以如果想要返回一個非raw的json集合,可以給formpanel添加如下方法:
    getJsonValue:function(){   
        
    var param = '{';   
        
    this.getForm().items.each(function(f){   
            
    var tmp = '"' + f.getName() + '":"' + f.getValue() + '",';   
            param 
    +=  tmp;   
        });   
        param 
    = param.substr(0,param.length - 1+ '}';   
        
    return param;   
    }  

    這個方法同樣適用于上面定義的checkboxgroup,如此就可以把前后臺的數據通過json統一起來了

     @2008 楊一. 版權所有. 保留所有權利

    posted on 2009-03-04 12:50 楊一 閱讀(2235) 評論(0)  編輯  收藏 所屬分類: Other Tech

    <2009年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導航

    公告

    本人在blogjava上發表的文章及隨筆除特別聲明外均為原創或翻譯,作品受知識產權法保護并被授權遵從 知識分享協議:署名-非商業性使用-相同方式共享 歡迎轉載,請在轉載時注明作者姓名(楊一)及出處(www.tkk7.com/yangyi)
    /////////////////////////////////////////
    我的訪問者

    常用鏈接

    留言簿(5)

    隨筆分類(55)

    隨筆檔案(55)

    相冊

    Java

    其他技術

    生活

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    自強不息


    用心 - 珍惜時間,勇于創造
    主站蜘蛛池模板: 亚洲黄片毛片在线观看| 国产成人精品高清免费| 亚洲av永久无码精品古装片| av电影在线免费看| 国产精品亚洲综合专区片高清久久久| 久久久久亚洲精品无码网址色欲 | 免费观看在线禁片| 亚洲午夜久久久久久久久电影网 | 亚洲AⅤ无码一区二区三区在线 | 野花高清在线观看免费3中文 | 国产亚洲精品2021自在线| 免费永久看黄在线观看app| 国产成人va亚洲电影| 亚洲人成无码久久电影网站| 中文字幕在线免费播放| 亚洲自偷自偷精品| 国产一精品一AV一免费孕妇| 亚洲AV无码一区二区三区性色 | 永久在线观看免费视频 | 黄页网站在线观看免费高清| 国产午夜亚洲精品| 亚洲成AV人在线观看网址| 国产99精品一区二区三区免费| 亚洲AV中文无码字幕色三| 100000免费啪啪18免进| 亚洲av无码专区在线观看亚| 亚洲国模精品一区| 在线日本高清免费不卡| 亚洲AV无码一区二区三区牲色| 亚洲黄片毛片在线观看| 91嫩草免费国产永久入口| 亚洲精品无码国产片| 久久久久久a亚洲欧洲aⅴ| 成人女人A级毛片免费软件| 男男gay做爽爽的视频免费| 亚洲AV无码一区二区乱子伦 | 久久亚洲春色中文字幕久久久 | 女人18毛片免费观看| 国产成人无码精品久久久免费| 亚洲色大成网站www永久| 免费一看一级毛片全播放|