EXTjs grid与json数据 转载

刚开始学习extjs,真是摸不着头呀。

做了半天才搞出一个grid显示数据。在网上找了个数据做了个测试。

一下是代码。

首先:把ext-3.1.0文件夹放到根目录下。

新建一个Default.aspx。

view plaincopy to clipboardprint?
01.<html xmlns="http://www.w3.org/1999/xhtml"> 
02.<head runat="server"> 
03.    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
04.    <link rel="stylesheet" type="text/css" href="ext-3.1.0/resources/css/ext-all.css" mce_href="ext-3.1.0/resources/css/ext-all.css" /> 
05.    <mce:script type="text/javascript" src="ext-3.1.0/adapter/ext/ext-base.js" mce_src="ext-3.1.0/adapter/ext/ext-base.js"></mce:script> 
06.    <mce:script type="text/javascript" src="ext-3.1.0/ext-all-debug.js" mce_src="ext-3.1.0/ext-all-debug.js"></mce:script> 
07.    <mce:script type="text/javascript" src="js/grid1.js" mce_src="js/grid1.js"></mce:script> 
08.    <title></title> 
09.</head> 
10.<body> 
11.    <form id="form1" runat="server"> 
12.    <div> 
13.    <div id="grid"></div> 
14.    <div id="pad"></div> 
15.    </div> 
16.    </form> 
17.</body> 
18.</html> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href="ext-3.1.0/resources/css/ext-all.css" mce_href="ext-3.1.0/resources/css/ext-all.css" />
    <mce:script type="text/javascript" src="ext-3.1.0/adapter/ext/ext-base.js" mce_src="ext-3.1.0/adapter/ext/ext-base.js"></mce:script>
    <mce:script type="text/javascript" src="ext-3.1.0/ext-all-debug.js" mce_src="ext-3.1.0/ext-all-debug.js"></mce:script>
    <mce:script type="text/javascript" src="js/grid1.js" mce_src="js/grid1.js"></mce:script>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <div id="grid"></div>
    <div id="pad"></div>
    </div>
    </form>
</body>
</html>

在创建一个名为grid1.js的js文件显示grid。

view plaincopy to clipboardprint?
01.Ext.onReady(function() {  
02. 
03.    var proxy = new Ext.data.HttpProxy({ url: 're.aspx'});//获取json数据  
04.    var reader = new Ext.data.JsonReader(  
05.            {  
06.                totalProperty: "results",  
07.                root: "datastr",  
08.                id: 'productID' 
09.            },  
10.            [  
11.                { name: 'productID' },  
12.                { name: 'productName' },  
13.                { name: 'productCode'}  
14.            ]  
15.        );  
16. 
17.      
18.    var store = new Ext.data.Store(  
19.    {  
20.        proxy: proxy,  
21.        reader: reader  
22.    });  
23. 
24.    store.load();  //加载数据   
25. 
26.//创建grid  
27.    var grid = new Ext.grid.GridPanel({  
28.        renderTo: 'grid',  
29.        width: 650,  
30.        store: store,  
31.        loadMask: true,  
32.        viewConfig: {  
33.            forceFit: true 
34.        },  
35.        autoHeight: true,  
36.        //autoExpandColumn:'descn',   
37.        columns: [  
38.        { header: "id", sortable: true, dataIndex: 'productID' },  
39.        { header: 'name', dataIndex: 'productName', width: 80 },  
40.        { header: "code", sortable: true, dataIndex: 'productCode' }  
41.        ],  
42.        frame: true, //表格外加边框   
43.        collapsible: true,  
44.        animCollapse: false 
45.    });  
46. 
47.    grid.render();  
48.}); 
Ext.onReady(function() {

    var proxy = new Ext.data.HttpProxy({ url: 're.aspx'});//获取json数据
    var reader = new Ext.data.JsonReader(
            {
                totalProperty: "results",
                root: "datastr",
                id: 'productID'
            },
            [
                { name: 'productID' },
                { name: 'productName' },
                { name: 'productCode'}
            ]
        );

   
    var store = new Ext.data.Store(
    {
        proxy: proxy,
        reader: reader
    });

    store.load();  //加载数据

//创建grid
    var grid = new Ext.grid.GridPanel({
        renderTo: 'grid',
        width: 650,
        store: store,
        loadMask: true,
        viewConfig: {
            forceFit: true
        },
        autoHeight: true,
        //autoExpandColumn:'descn',
        columns: [
        { header: "id", sortable: true, dataIndex: 'productID' },
        { header: 'name', dataIndex: 'productName', width: 80 },
        { header: "code", sortable: true, dataIndex: 'productCode' }
        ],
        frame: true, //表格外加边框
        collapsible: true,
        animCollapse: false
    });

    grid.render();
});

数据源re.aspx.cs页面

view plaincopy to clipboardprint?
01.string str = "{ \"results\":19,\"datastr\":[ { \"productID\":\"1\",\"productCode\":\"083-QMC16009-19/B\",\"productName\":\"C1系列600柜\"}, { \"productID\":\"2\",\"productCode\":\"083-QMC1-600B1-R/L\",\"productName\":\"600侧山左右各1\"}, { \"productID\":\"3\",\"productCode\":\"083-QMC1-600B1-L\",\"productName\":\"左侧山\"}, { \"productID\":\"4\",\"productCode\":\"083-QMC1-600B1-L\",\"productName\":\"左侧山(两边铣)\"}, { \"productID\":\"5\",\"productCode\":\"083-QMC1-600H2\",\"productName\":\"600身后板\"}, { \"productID\":\"6\",\"productCode\":\"083-QMC1-600H2\",\"productName\":\"600身后板\"}, { \"productID\":\"7\",\"productCode\":\"083-QMC1-600H2\",\"productName\":\"600身后板\"}, { \"productID\":\"8\",\"productCode\":\"083-QMC1-600SF2\",\"productName\":\"大拉板\"}, { \"productID\":\"9\",\"productCode\":\"083-QMC1-600SF2\",\"productName\":\"大拉板\"}, { \"productID\":\"10\",\"productCode\":\"083-QMC1-600SF2H\",\"productName\":\"滑道条\"}, { \"productID\":\"11\",\"productCode\":\"QMC1-600G3\",\"productName\":\"金属衣杆\"}, { \"productID\":\"12\",\"productCode\":\"QMC1-600G3\",\"productName\":\"金属衣杆\"}, { \"productID\":\"13\",\"productCode\":\"QMC1-600G3\",\"productName\":\"金属衣杆\"}, { \"productID\":\"14\",\"productCode\":\"F-QMC1600L2-3-1\",\"productName\":\"电视柜\"}, { \"productID\":\"15\",\"productCode\":\"F-QMC1600L2-3CDB\",\"productName\":\"顶底山条\"}, { \"productID\":\"16\",\"productCode\":\"F-QMC1600L2-3CD\",\"productName\":\"顶底板\"}, { \"productID\":\"17\",\"productCode\":\"F-QMC1600L2-3CD\",\"productName\":\"顶底板\"}, { \"productID\":\"18\",\"productCode\":\"F-QMC1-H807\",\"productName\":\"380/500后身板\"}, { \"productID\":\"19\",\"productCode\":\"F-QMC1-H807\",\"productName\":\"后身板\"} ]} ";  
02. 
03.Response.Write(str); 
        string str = "{ \"results\":19,\"datastr\":[ { \"productID\":\"1\",\"productCode\":\"083-QMC16009-19/B\",\"productName\":\"C1系列600柜\"}, { \"productID\":\"2\",\"productCode\":\"083-QMC1-600B1-R/L\",\"productName\":\"600侧山左右各1\"}, { \"productID\":\"3\",\"productCode\":\"083-QMC1-600B1-L\",\"productName\":\"左侧山\"}, { \"productID\":\"4\",\"productCode\":\"083-QMC1-600B1-L\",\"productName\":\"左侧山(两边铣)\"}, { \"productID\":\"5\",\"productCode\":\"083-QMC1-600H2\",\"productName\":\"600身后板\"}, { \"productID\":\"6\",\"productCode\":\"083-QMC1-600H2\",\"productName\":\"600身后板\"}, { \"productID\":\"7\",\"productCode\":\"083-QMC1-600H2\",\"productName\":\"600身后板\"}, { \"productID\":\"8\",\"productCode\":\"083-QMC1-600SF2\",\"productName\":\"大拉板\"}, { \"productID\":\"9\",\"productCode\":\"083-QMC1-600SF2\",\"productName\":\"大拉板\"}, { \"productID\":\"10\",\"productCode\":\"083-QMC1-600SF2H\",\"productName\":\"滑道条\"}, { \"productID\":\"11\",\"productCode\":\"QMC1-600G3\",\"productName\":\"金属衣杆\"}, { \"productID\":\"12\",\"productCode\":\"QMC1-600G3\",\"productName\":\"金属衣杆\"}, { \"productID\":\"13\",\"productCode\":\"QMC1-600G3\",\"productName\":\"金属衣杆\"}, { \"productID\":\"14\",\"productCode\":\"F-QMC1600L2-3-1\",\"productName\":\"电视柜\"}, { \"productID\":\"15\",\"productCode\":\"F-QMC1600L2-3CDB\",\"productName\":\"顶底山条\"}, { \"productID\":\"16\",\"productCode\":\"F-QMC1600L2-3CD\",\"productName\":\"顶底板\"}, { \"productID\":\"17\",\"productCode\":\"F-QMC1600L2-3CD\",\"productName\":\"顶底板\"}, { \"productID\":\"18\",\"productCode\":\"F-QMC1-H807\",\"productName\":\"380/500后身板\"}, { \"productID\":\"19\",\"productCode\":\"F-QMC1-H807\",\"productName\":\"后身板\"} ]} ";

        Response.Write(str);

运行显示看看结果吧。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lzy_1515/archive/2010/02/08/5299149.aspx

posted @ 2011-03-23 10:07  Seven_Milk  阅读(2104)  评论(0编辑  收藏  举报