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

    常用鏈接

    留言簿(5)

    隨筆分類(55)

    隨筆檔案(55)

    相冊

    Java

    其他技術

    生活

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    自強不息


    用心 - 珍惜時間,勇于創造
    主站蜘蛛池模板: 久久一区二区免费播放| 亚洲av一本岛在线播放| 日韩免费无码视频一区二区三区| 久久精品国产亚洲av麻豆蜜芽| 国产中文在线亚洲精品官网| 老司机在线免费视频| 香蕉免费一级视频在线观看| 亚洲国产成人无码AV在线影院| 日本亚洲视频在线 | 亚洲精品国产精品国自产网站| 亚洲区小说区激情区图片区 | 亚洲人成777在线播放| 麻豆亚洲av熟女国产一区二| 亚洲一区二区三区国产精品| 国产自产拍精品视频免费看| 免费黄色大片网站| 在线播放高清国语自产拍免费| 久九九精品免费视频| 99久久免费国产精品特黄| 波多野结衣中文字幕免费视频| 久久精品毛片免费观看| 久久久久久毛片免费播放| 99精品在线免费观看| 国产成人精品免费午夜app | 美女被吸屁股免费网站| 苍井空亚洲精品AA片在线播放| 日韩电影免费在线观看网址| EEUSS影院WWW在线观看免费| 成人免费ā片在线观看| 日韩免费电影网站| 99久久99这里只有免费费精品| 歪歪漫画在线观看官网免费阅读| 精品国产免费一区二区| 国产成人精品久久亚洲| 亚洲视频在线观看地址| 另类专区另类专区亚洲| 无码日韩精品一区二区免费暖暖| 久久精品免费一区二区| 亚洲国产精品无码久久久久久曰| 无码欧精品亚洲日韩一区| 亚洲熟妇无码一区二区三区导航 |