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

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

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

    幫助IT團(tuán)隊(duì)快速構(gòu)建符合jt808協(xié)議部標(biāo)的基于java技術(shù)的GPS和視頻平臺(tái)(2379423771@qq.com)

    Javascript Widget之二 基于EXT JS 的可重用的無限級(jí)聯(lián)下拉框

    EXT JS 中的Ext.form.ComboBox 是基于輸入框封裝的widget,很靈活,代價(jià)是易用性非常差,特別是針對復(fù)雜的多級(jí)級(jí)聯(lián)框。

    調(diào)用者需要針對自己的需求做一下靈活的封裝,來降低復(fù)雜度,讓開發(fā)人員更容易調(diào)用,同時(shí)代讓碼復(fù)用的程度更高。

    無論是省市鄉(xiāng)鎮(zhèn),還是商品分類,無論是兩級(jí),還是多級(jí),還是同級(jí)多個(gè)Child, API的行為都應(yīng)當(dāng)保持一致。

    特點(diǎn):
    1.將數(shù)據(jù)源封裝在內(nèi)部,簡化調(diào)用代碼

    2.一個(gè)下拉框允許設(shè)置同級(jí)多個(gè)child下拉框

    3.允許設(shè)置默認(rèn)值,并觸發(fā)Select事件

    4.下拉框中,允許設(shè)置特有的POST request 參數(shù),在發(fā)送請求時(shí),自動(dòng)發(fā)送。

    調(diào)用方式:


    ?1Ext.onReady(function(){
    ?2????????//城市下級(jí)有商業(yè)區(qū)和行政區(qū),兩種同級(jí)類型,
    ?3????????//后端通過?data2.html?及?Post?參數(shù)?type?和?parent來?輸出不同的數(shù)據(jù)
    ?4????????var?myCmb1?=?new?MyComboBox({
    ?5?????????????dataUrl:'data2.html',
    ?6?????????????applyTo:'select1',???
    ?7?????????????defaultValue:'2',
    ?8?????????????params:{type:'city'}??//城市
    ?9????????????
    10????????}
    );????
    11
    12????????var?myCmb2?=?new?MyComboBox({
    13?????????????dataUrl:'data2.html',
    14?????????????applyTo:'select2',???
    15?????????????params:{type:'business'}??//商業(yè)區(qū)
    16????????????
    17????????}
    );????
    18
    19????????var?myCmb3?=?new?MyComboBox({
    20?????????????dataUrl:'data2.html',
    21?????????????applyTo:'select3',?
    22?????????????params:{type:'district'}??//行政區(qū)
    23????????????
    24????????}
    );????
    25
    26????????myCmb1.addChild(myCmb2).addChild(myCmb3);??
    27
    28????????myCmb1.reload();
    29
    30}
    );

    代碼:
    ?1MyComboBox?=?Ext.extend(Ext.form.ComboBox,?{
    ?2????????????????valueField:?'id',??????
    ?3????????????????displayField:?'label',
    ?4????????????????emptyText:'請選擇',//默認(rèn)值?
    ?5????????????????mode:'local',
    ?6????????????????triggerAction:'all',
    ?7????????????????initComponent:?function(){
    ?8???????????????????//在組件初始化期間調(diào)用的代碼
    ?9
    10???????????????????this.children?=?[];????????????
    11?????????????
    12????????????????????//調(diào)用父類構(gòu)造函數(shù)(必須)
    13????????????????????MyComboBox.superclass.initComponent.apply(this,?arguments);
    14
    15????????????????????//**設(shè)置數(shù)據(jù)源**
    16????????????????????this.store?=?new?Ext.data.Store({??
    17?????????????????????????baseParams:?this.params?||?{},??
    18?????????????????????????proxy:?new?Ext.data.HttpProxy({???
    19?????????????????????????????url:?this.dataUrl??
    20?????????????????????????}
    ),???
    21?????????????????????????reader:?new?Ext.data.JsonReader({???
    22?????????????????????????????root:?'dms',???
    23?????????????????????????????id:?'id',
    24?????????????????????????????totalProperty:?'recordCount',?
    25?????????????????????????????}
    ,?[???
    26?????????????????????????????????{name:?'id',?mapping:?'id'},???
    27?????????????????????????????????{name:?'label',?mapping:?'label'}???
    28?????????????????????????????])???
    29????????????????????????}
    );?
    30????????????????}
    ,
    31????????????????//設(shè)置默認(rèn)值,并觸發(fā)Select?事件
    32????????????????setDefaultValue:function(v){
    33????????????????????this.setValue(v);
    34
    35????????????????????this.fireEvent('select',?this);
    36????????????????}
    ,
    37????????????????/**?向數(shù)據(jù)源添加request參數(shù)?*/
    38????????????????addParam:function(parameters){
    39????????????????????Ext.apply(this.store.baseParams,?parameters);
    40????????????????}
    ,
    41????????????????
    42????????????????listeners:{????????
    43???????????????????select?:?function(combo,?record,index){??????
    44??????????????????????Ext.each(this.children,?function(child){
    45???????????????????????????????//child.clearValue();
    46????????????????????????????????//級(jí)聯(lián)的子下拉框會(huì)多發(fā)送一個(gè)&parent=..的參數(shù),后端據(jù)此可以做出判斷如何加載數(shù)據(jù)
    47???????????????????????????????child.addParam({parent:combo.value});??
    48
    49???????????????????????????????child.reload();
    50
    51??????????????????????}
    );???
    52???????????????????}
    ??????
    53???????????????}
    ,???
    54???????????????/**?添加下級(jí)級(jí)聯(lián)的下拉框?*/
    55???????????????addChild:function(child){
    56???????????????????this.children.push(child);
    57
    58???????????????????return?this;
    59???????????????}
    ,
    60???????????????/**?重新加載數(shù)據(jù)源?*/
    61???????????????reload:function(){
    62??????????????????if(this.store)
    63???????????????????????this.store.load();????
    64??????????????????if(this.defaultValue){
    65?????????????????????this.setDefaultValue(this.defaultValue);
    66?????????????????????this.defaultValue?=?null;???//默認(rèn)值,只初始化一次
    67??????????????????}

    68
    69
    70??????????????????return?this;
    71???????????????}

    72
    73????????????}
    );


    應(yīng)用庫:
    1?link?rel="stylesheet"?type="text/css"?href="../../resources/css/ext-all.css"?/>
    2????link?rel="stylesheet"?type="text/css"?href="../../resources/css/xtheme-gray.css"?/>
    3
    4script?src="../../js/ext-base.js">span style="COLOR: #800000">script>
    5script?src="../../js/ext-all-debug.js">span style="COLOR: #800000">script>


    20人合租600元/年

    posted on 2008-11-23 11:34 Speed 閱讀(4492) 評論(0)  編輯  收藏 所屬分類: 框架設(shè)計(jì)前端設(shè)計(jì)Javascript WidgetEXT

    導(dǎo)航

    留言簿(15)

    隨筆分類

    值得一看的博客

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲精品乱码久久久久久蜜桃不卡 | 久久亚洲熟女cc98cm| 无码国产精品一区二区免费16| 亚洲熟妇无码另类久久久| 中文字幕成人免费高清在线视频| 自拍偷自拍亚洲精品第1页| 精品国产污污免费网站入口| 国产精品亚洲综合专区片高清久久久| 国产精品高清免费网站| 日本亚洲视频在线| 真实国产乱子伦精品免费| 亚洲综合色区中文字幕| 国产成人在线观看免费网站 | 久久免费国产精品一区二区| 亚洲AV色香蕉一区二区| 1000部拍拍拍18勿入免费视频软件 | 亚洲五月综合缴情在线观看| 国产无遮挡无码视频免费软件| 91在线精品亚洲一区二区| 免费观看国产网址你懂的| 亚洲s码欧洲m码吹潮| 一本色道久久综合亚洲精品| 95免费观看体验区视频| 亚洲码欧美码一区二区三区| 亚洲中久无码不卡永久在线观看| 日本在线免费观看| 亚洲爆乳大丰满无码专区| 亚洲一区二区三区在线播放| 57pao国产成永久免费视频 | 国产日韩在线视频免费播放| 亚洲av网址在线观看| 在线视频免费国产成人| 日韩av无码免费播放| 亚洲中文字幕无码av| 91麻豆精品国产自产在线观看亚洲 | 日韩精品福利片午夜免费观着| 美女18毛片免费视频| 亚洲视屏在线观看| 免费在线观看一级毛片| 99免费在线观看视频|