天天看點

ext 帶條件查詢的 分頁

好像對于EXT 一直沒有特别深入的研究...不知道缺在什麼地方,這是我自己學習的語言,總覺得 代碼的品質存在問題..

發上來 大家看一下.

ext 帶搜尋條件的 查詢以及分頁

function QueryString()
{
var name,value,i;
var str=location.href;
var num=str.indexOf("?")
str=str.substr(num+1);
var arrtmp=str.split("&");
for(i=0;i < arrtmp.length;i++){
num=arrtmp[i].indexOf("=");
if(num>0){
name=arrtmp[i].substring(0,num);
value=arrtmp[i].substr(num+1);
this[name]=value;
}
}
}

Ext.onReady(function(){
    var fm = Ext.form;

    var Request=new QueryString();
	var ID="";//Request["wlid"];
	//
    var zlUrl=getRootPath()+'servlet/SearchGoods?change=searchallGoods';
    var grid = null;
    var page_size = 60;
    var cm = new Ext.grid.ColumnModel({
        defaults: {
            sortable: true   
        },
        columns: [ new Ext.grid.CheckboxSelectionModel(),
        	       new Ext.grid.RowNumberer(),
            {
                header: '客戶編号',
                dataIndex: 'KHcode'
            }, {
                header: '材料編号',
                dataIndex: 'goodsCode'
             },{
                header: '材料名稱',
                dataIndex: 'shortName'
             }, {
                header: '規格型号',
                dataIndex: 'style'
             }, {
                header: '機關',
                dataIndex: 'unitName'
             }, {
                header: '封裝',
                dataIndex: 'APPROVALNO'
             }, {
                header: '廠家',
                dataIndex: 'FACTORY'
             }, {
                header: '庫存數量',
                dataIndex: 'STCount'
             }, {
                header: '成本單價',
                dataIndex: 'aprice'
             }, {
             	id: 'description',
                header: '參考進價',
                dataIndex: 'PPRICE'
             }, {
                header: '參考售價',
                dataIndex: 'SPRICE'
             }, {
                header: '',
                dataIndex: 'unitId',
                hidden:true,
                hideable:false
             }, {
                header: '',
                dataIndex: 'goodsId',
                hidden:true,
                hideable:false
             }
        ]
    });
     var store = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url: zlUrl
        }),
        reader: new Ext.data.JsonReader({
        	totalProperty: 'totalCount',
            root: 'gridRows',
            fields: [
            	{name:'KHcode'},
                {name: 'goodsCode', mapping: 'goodsCode'},
                {name: 'shortName'}, 
                {name: 'style'},
                {name:'unitName'},
                {name: 'APPROVALNO'},
                {name: 'FACTORY'},
                {name:'STCount'},
                {name: 'aprice'},
                {name: 'PPRICE'},
                {name: 'SPRICE'},
                {name: 'unitId'},
                {name: 'goodsId'}
            ]
        })
    });
    //導航欄
    var dsSupplier = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
           url:getRootPath()+'servlet/SearchGoods?change=sgoodsType'
        }),
        reader: new Ext.data.JsonReader({
        	root: 'gridRows',
        	totalProperty: 'totalCount'
        }, [
        	{name: 'typeName', mapping: 'typeName'},
           {name: 'typeId', mapping: 'typeId'}
           
        ])
    });
    var typeid="";
     var combo = new Ext.form.ComboBox({
        typeAhead: true,
        triggerAction: 'all',
        selectOnFocus :true,
        listClass: 'x-combo-list-small',
        store:dsSupplier,
        valueField:'typeId',
        displayField:'typeName',
        //editable: true,
        listeners:{
    		select: function(){
    			Ext.get('typeId').dom.value=this.getValue();
       			store.load({
              		params:{
              			start : 0,   
    	 				limit : page_size,
                       typeId:this.getValue()//取得搜尋表單文本域的值,發送到服務端
                    }
              	});
    		}
		}
    });
    
    
    grid = new Ext.grid.EditorGridPanel({
    	autoScroll:true,
        store: store,
        sm : new Ext.grid.CheckboxSelectionModel(),
		cm: cm,
        renderTo: 'editor-grid',
        width: Ext.get("content").getWidth(),
        height: Ext.get("content").getHeight(),
        autoExpandColumn: 'description', // column with this id will be expanded
        title: '客戶物料詳細資訊',
        frame: true,
        clicksToEdit: 1,
        
        viewConfig:{
        	forceFit:true,//所有列都改變寬度
			autoFill:true,
			sortAscText:'升序',
			sortDescText:'降序',
			columnsText:'顯示列'
		},
        tbar: [{
              text: '請選擇類别:'
           },combo,'-',
           {xtype:'textfield',
			fieldLabel: '搜尋框',
            id: 'searchContent',
            name: 'searchContent'
           },'-',
           {
           text:'搜尋',
           handler:function(){
           		//Ext.get('searchContent').dom.value=Ext.getCmp('searchContent').getValue();
       			store.load({
              		params:{
              			start : 0,   
    	 				limit : page_size,
    	 				storeId:Request["STOREID"],
	   					wlid:Request["WLID"],
    	 				typeId:Ext.get('typeId').dom.value,
                       searchContent:Ext.getCmp('searchContent').getValue()
                    }
              	});
           }
           },
           '-',{
           	text: '确定',
           	handler:function(){
           		var json = [];
           		var recordDtlArray = grid.getSelectionModel().getSelections();
				for(i = 0; i<recordDtlArray.length;i++){
				    json.push(recordDtlArray[i].data);
				}
				if(json.length==0){
					Ext.Msg.alert('資訊','沒有選中資料');
					return;
				}
				//發送儲存請求
				Ext.lib.Ajax.request(
					'POST',
					getRootPath()+'servlet/SearchGoods?change=checkedGoods',
						{
						success:function(request){
							var message = request.responseText;
							window.returnValue=message;
							window.close();
						},
						failure:function(){
							Ext.Msg.alert("錯誤", "與背景聯系的時候出現了問題");
						}
					},
					'&members='+encodeURIComponent(Ext.encode(json))
				);
           	}
           }],
		bbar:new Ext.PagingToolbar({
    		pageSize : page_size,
    		store : store,
    		displayInfo : true,
    		displayMsg: '',
            emptyMsg: "沒有資料..",
            beforePageText:'第',
            afterPageText:'頁,共{0}頁'
   		})
       
    });
    Ext.getCmp('searchContent').setValue(decodeURI(Request["codestr"]));
    store.load({
    	 params : {
    	 	typeId:Ext.get('typeId').dom.value,
    	 	searchContent:Ext.getCmp('searchContent').getValue(),
    	 	storeId:Request["STOREID"],
	   		wlid:Request["WLID"],
    	 	start : 0,   
    	 	limit : page_size
   		 }
    });
    store.on('beforeload',function(){
	  Ext.apply(this.baseParams,{
	   typeId:Ext.get('typeId').dom.value,
	   storeId:Request["STOREID"],
	   wlid:Request["WLID"],
	   searchContent:Ext.getCmp('searchContent').getValue()
	  });
	});
    
    window.onresize = function(){ 
    	grid.setWidth(0); 
        grid.setHeight(0); 
        grid.setWidth(Ext.get("content").getWidth()); 
        grid.setHeight(Ext.get("content").getHeight()); 
	};
});