<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)

    隨筆分類

    值得一看的博客

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 三级片免费观看久久| 丝袜熟女国偷自产中文字幕亚洲| aaa毛片视频免费观看| 亚洲一区二区三区写真| 亚洲视频在线视频| 伊人久久亚洲综合| 在线永久免费观看黄网站| 免费h片在线观看网址最新| 日韩免费高清播放器| 一级毛片在线完整免费观看| 亚洲av色香蕉一区二区三区| 精品亚洲国产成人| 337p日本欧洲亚洲大胆精品555588| 国产亚洲AV手机在线观看| 四虎在线播放免费永久视频 | 国产精品成人观看视频免费 | 四虎国产精品免费久久影院| 最新中文字幕电影免费观看| 国产91色综合久久免费分享| 99久久久国产精品免费牛牛四川| 久久久久久国产a免费观看不卡 | 亚洲精品国产V片在线观看| 德国女人一级毛片免费| 在人线av无码免费高潮喷水| 国产又大又粗又长免费视频| 免费A级毛片无码A∨免费| 久久久久国产精品免费免费不卡 | 亚洲日韩av无码| 亚洲精品亚洲人成人网| 亚洲伊人色欲综合网| 国产综合亚洲专区在线| 亚洲中文字幕日产乱码高清app| 国产精品亚洲美女久久久| 亚洲v国产v天堂a无码久久| 亚洲高清无码在线观看| 亚洲人成网站色在线入口| 91麻豆国产自产在线观看亚洲| 亚洲精品无码av人在线观看| 亚洲国产a∨无码中文777| 西西人体44rt高清亚洲| 亚洲网站免费观看|