日期:2014-05-16 浏览次数:20506 次
var proxy=new Ext.data.HttpProxy({url:''});
var json = new Ext.util.JSON.decode(fieldDatas);//为传过来的json数据
var reader=new Ext.data.JsonReader({},json.fieldsNames); 
    var store = new Ext.data.Store({
        proxy:proxy,
    reader:reader
    });   
   store.load();
   
    // create the Grid
   var grid = new Ext.grid.GridPanel({
            width:document.body.clientWidth-10,
            height:document.body.clientHeight-25,
            region: 'center',
            split: true,
            border:false,
            store:store,
            columns:json.columModle
            });
------解决方案--------------------
var columns = [
			{id:'header', header: "地区", width: 310, sortable: true, dataIndex: 'projectName'}
		];//这个是列头
var mystore = new Ext.data.Store({
			proxy: new Ext.data.HttpProxy({
				url:'你返回json数据的页面'+new Date().getTime()
			}),
			reader: new Ext.data.JsonReader({}, [
				{name: 'header'}//对应列头名的值,欧洲啊什么的
			]),
			sortInfo:{field: "projectCreatTime", direction: "DESC"}//排序,可以不使用
		});
这样的话就把store数据转换到前台了.
需要注意的事,如果没有在刚才的store处理里面设置autoload的话这里在加载进入grid里面之前需要手动load一遍
mystore.load()//里面可以加参数,仍然是对象的形式{key:value, key:value};
var grid = new Ext.grid.GridPanel({
           width:document.body.clientWidth-10,
           height:document.body.clientHeight-25,
           region: 'center',
           split: true,
           border:false,
           store:store,
           columns:columns  
           });
现在就是把store数据和设定的columns加载到grid组件里面去了.
不过你的json数据看起来不那么规范 毕竟中文key我都还没试过.. 你的key名叫地区 我就不知道能否行的通了..
------解决方案--------------------
  //动态store
			    			ResStore=Ext.create("Ext.data.Store",{
			    				fields:fieldArrp,
			    				pageSize:PAGESIZE,
			    				proxy:{
			    					type:"ajax",
			    					url:"config/list.do?sqlval="+encodeURI(sqlval)+"&t_id="+t_id,
			    					reader:{type:"json",totalProperty:"total",root:"ptdata"}
			    				},
			    				autoLoad: true
			    			});
			    		       
			    		    var resultP = new Ext.grid.Panel({  
			    		                id: 'jgjxsp',
			    		                closable : false,//隐藏grid的关闭按钮
			    		                store:ResStore,  
			    		                autoScroll: true,
			    		                autoRender:true,
			    		                columns:jsons.columModle,
			    		                bodyCls:"gridheader",
			    		                columnLines:true,
			    		                layout: 'fit',
------解决方案--------------------
我不大喜欢这种纯后台生成的数据列形式
你想如果你的请求发生错误 那么前台就什么也看不见 这样的体验挺差的
不如你前台绘制好页面 后台只传递数据
让显示和数据分离