<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 楊一 閱讀(2236) 評論(0)  編輯  收藏 所屬分類: Other Tech

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

    導航

    公告

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

    常用鏈接

    留言簿(5)

    隨筆分類(55)

    隨筆檔案(55)

    相冊

    Java

    其他技術

    生活

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    自強不息


    用心 - 珍惜時間,勇于創造
    主站蜘蛛池模板: 久久久久亚洲AV无码专区网站 | 男女免费观看在线爽爽爽视频| 亚洲人成人网站在线观看| 亚洲欧美日韩中文高清www777| 国产无人区码卡二卡三卡免费| 亚洲精品在线观看视频| a级毛片在线免费| 亚洲真人无码永久在线| 国产V片在线播放免费无码| 亚洲VA综合VA国产产VA中| 免费一级毛suv好看的国产网站 | WWW国产亚洲精品久久麻豆| 国内精品免费视频自在线| 亚洲另类无码专区丝袜| 免费国产成人午夜私人影视| 日本黄页网址在线看免费不卡 | 日韩精品人妻系列无码专区免费| 亚洲AV无码成人精品区蜜桃| 99爱免费观看视频在线| 亚洲一级黄色大片| 日本最新免费不卡二区在线| 美女18一级毛片免费看| 亚洲国产av无码精品| 永久免费不卡在线观看黄网站| 亚洲国产成人久久综合一| 国产h视频在线观看网站免费| 亚洲中文字幕久久无码| 亚洲国产av无码精品| 两个人看的www免费| 亚洲国产人成在线观看| 日本视频免费在线| 岛国精品一区免费视频在线观看| 亚洲好看的理论片电影| 欧美a级成人网站免费| 成人在线免费视频| 亚洲高清在线视频| 在线观看成人免费| 黄视频在线观看免费| 亚洲成人在线免费观看| 亚洲AV永久无码精品一区二区国产 | 亚洲伊人久久大香线蕉AV|