当前位置:编程学习 > JS >>

extjs combobox分页查询

IE6.0++

extjs3.3.1

以下就是代码:

[javascript]
/**
 * YHC
 */ 
 
/**
 * 分页的Combobox
 */ 
PagingMedicalcareCbo=Ext.extend(Ext.form.ComboBox,{ 
    /**
     * 构造方法
     */ 
    timedelay_Slow:2000,//1000ms=1s  
    timedelay_fast:1000,//1000ms=1s  
    t:null, 
    myStore:null, 
    currentCboText:null,//当前CBO文本框中的值  
    constructor:function(){ 
        this.myStore=new Ext.data.JsonStore({ 
            url:"/his/medical_care!ajaxMedicalcareCbo.action",//url地址  
            root: 'root', 
            idProperty: 'linkId', 
            totalProperty:"totalProperty",  
            fields:[{name:"linkId"}, 
                    {name:"orgCode"}, 
                    {name:"orgName"}, 
                    {name:"dbName"}, 
                    {name:"serverType"}], 
            listeners :{ 
                beforeload:this.onCboBeforeLoad, 
                scope:this 
            } 
        }); 
         
 
        //  
        PagingMedicalcareCbo.superclass.constructor.call(this,{ 
            id:"searchCbo", 
            store:this.myStore, 
            mode:"remote", 
            pageSize:5, 
            triggerAction:"all", 
            displayField:"orgName", 
            //valueField:"linkId",  
            width:180, 
            listWidth:220, 
            fieldLabel:'医疗单位', 
            listeners :{ 
                select:this.onSelected, 
                keyup:this.onKeyup, 
                scope:this 
                } 
        }); 
         
    }, 
    //设置参数  
    onCboBeforeLoad:function(store,options){ 
        if(this.currentCboText!=null&&(typeof this.currentCboText)!='undefined'){ 
            //带机构名称  
            store.baseParams={'medicalCareVo.orgName':this.currentCboText};  
        }else{ 
            //没有任何的参数  
            store.baseParams={}; 
        } 
         
    }, 
    //选择之后,对应赋值  
    onSelected:function(combo,record,index){ 
        var orgName=this.myStore.getAt(index).get('orgName'); 
        //this.value=orgName;  
        alert(this.myStore.getAt(index).get('orgName')); 
    }, 
    //键盘弹起的时候 ,赋值当前文本值  
    onKeyup:function(combo,e){ 
        this.currentCboText=Ext.getCmp('searchCbo').getValue(); 
        //切记 清除(很重要) 下一次需要清除上一次  
        if(this.t){ 
            window.clearInterval(this.t);//清除延时执行  
        } 
        //如果此时用户将文本框的值删除完之后(也就是没有任何的值)  
        if(this.currentCboText==''){ 
        this.t=window.setInterval('Ext.getCmp("searchCbo").myStoreLoadData()', this.timedelay_fast); 
        return; 
        } 
        //延时执行,避免用户输入太快,导致访问服务器次数增加,节约性能  
        this.t=window.setInterval('Ext.getCmp("searchCbo").myStoreLoadData()', this.timedelay_Slow); 
         
    }, 
    //--myStore重新加载数据  
    myStoreLoadData:function(){ 
         
        //重新加载数据  
        this.myStore.load({ 
            params:{start:0,limit:5} 
        }); 
        //切记 清除(很重要)  

补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,