页面代码:
 1 <html>
<html>
 2 <head>
    <head>
 3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 4 <title>Ext Reader</title>
        <title>Ext Reader</title>
 5 <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css"/>
        <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css"/>
 6
 <script type="text/javascript" src="../adapter/ext/ext-base.js">
        <script type="text/javascript" src="../adapter/ext/ext-base.js">
 7 </script>
        </script>
 8
 <script type="text/javascript" src="../ext-all.js">
        <script type="text/javascript" src="../ext-all.js">
 9 </script>
        </script>
10
 <script type="text/javascript" src="./test.js">
        <script type="text/javascript" src="./test.js">
11 </script>
        </script>
12 </head>
    </head>
13 <body>
    <body>
14 <div id="main">
        <div id="main">
15 </div>
        </div>
16 </body>
    </body>
17 </html>
</html> 
JavaScript代码:
第一种实现,简单表格
 1
 /**//**
/**//**
 2 * @author hasee
 * @author hasee
 3 */
 */
 4
 Ext.onReady(function()
Ext.onReady(function() {
{
 5
 6 //json数据
    //json数据
 7
 var data =
    var data =  {
{
 8
 'data': [
        'data': [ {
{
 9 'id': 1,
            'id': 1,
10 'name': 'david',
            'name': 'david',
11 'age': 25
            'age': 25
12
 },
        },  {
{
13 'id': 2,
            'id': 2,
14 'name': 'marry',
            'name': 'marry',
15 'age': 21
            'age': 21
16
 },
        },  {
{
17 'id': 3,
            'id': 3,
18 'name': 'leo',
            'name': 'leo',
19 'age': 19
            'age': 19
20 }]
        }]
21 }
    }
22 
    
23 //表格控件
    //表格控件
24
 var grid = new Ext.grid.GridPanel(
    var grid = new Ext.grid.GridPanel( {
{
25 renderTo: "main",
        renderTo: "main",
26 title: "表格",
        title: "表格",
27
 columns: [
        columns: [ {
{
28 header: "ID",
            header: "ID",
29 dataIndex: "id",
            dataIndex: "id",
30 sortable: true
            sortable: true
31
 },
        },  {
{
32 header: "姓名",
            header: "姓名",
33 dataIndex: "name",
            dataIndex: "name",
34 sortable: true
            sortable: true
35
 },
        },  {
{
36 header: "年龄",
            header: "年龄",
37 dataIndex: "age",
            dataIndex: "age",
38 sortable: true
            sortable: true
39 }],
        }],
40
 ds: new Ext.data.JsonStore(
        ds: new Ext.data.JsonStore( {
{
41 data: data,
            data: data,
42 autoLoad: true,
            autoLoad: true,
43 root: 'data',
            root: 'data',
44 fields: ['id', 'name', 'age']
            fields: ['id', 'name', 'age']
45 }),
        }),
46 autoExpandColumn: 2
        autoExpandColumn: 2
47 })
    })
48 });
});
49
 
第二种实现,添加checkbox,右键菜单:
 1
 /**//**
/**//**
 2 * @author hasee
 * @author hasee
 3 */
 */
 4
 Ext.onReady(function()
Ext.onReady(function() {
{
 5
 6 //json数据
    //json数据
 7
 var data =
    var data =  {
{
 8
 'data': [
        'data': [ {
{
 9 'id': 1,
            'id': 1,
10 'name': 'david',
            'name': 'david',
11 'age': 25
            'age': 25
12
 },
        },  {
{
13 'id': 2,
            'id': 2,
14 'name': 'marry',
            'name': 'marry',
15 'age': 21
            'age': 21
16
 },
        },  {
{
17 'id': 3,
            'id': 3,
18 'name': 'leo',
            'name': 'leo',
19 'age': 19
            'age': 19
20 }]
        }]
21 }
    }
22 
    
23 //表格控件
    //表格控件
24 var sm = new Ext.grid.CheckboxSelectionModel();
    var sm = new Ext.grid.CheckboxSelectionModel();
25
 var grid = new Ext.grid.GridPanel(
    var grid = new Ext.grid.GridPanel( {
{
26 renderTo: "main",
        renderTo: "main",
27 title: "表格",
        title: "表格",
28
 columns: [sm,
        columns: [sm,  {
{
29 header: "ID",
            header: "ID",
30 dataIndex: "id",
            dataIndex: "id",
31 sortable: true
            sortable: true
32
 },
        },  {
{
33 header: "姓名",
            header: "姓名",
34 dataIndex: "name",
            dataIndex: "name",
35 sortable: true
            sortable: true
36
 },
        },  {
{
37 header: "年龄",
            header: "年龄",
38 dataIndex: "age",
            dataIndex: "age",
39 sortable: true
            sortable: true
40 }],
        }],
41
 ds: new Ext.data.Store(
        ds: new Ext.data.Store( {
{
42 proxy: new Ext.data.MemoryProxy(data),
            proxy: new Ext.data.MemoryProxy(data),
43
 reader: new Ext.data.JsonReader(
            reader: new Ext.data.JsonReader( {
{
44 root: 'data'
                root: 'data'
45
 }, [
            }, [ {
{
46 name: 'id'
                name: 'id'
47
 },
            },  {
{
48 name: 'name'
                name: 'name'
49
 },
            },  {
{
50 name: 'age'
                name: 'age'
51 }]),
            }]),
52 autoLoad: true//一定要写,否则无数据
            autoLoad: true//一定要写,否则无数据
53 }),
        }),
54 sm: sm,//多选框checkbox
        sm: sm,//多选框checkbox
55 autoExpandColumn: 3,//自动扩展最后一列
        autoExpandColumn: 3,//自动扩展最后一列
56 autoHeight: true//一定要写,否则显示的数据会少一行
        autoHeight: true//一定要写,否则显示的数据会少一行
57 })
    })
58 
    
59 var currentRowNumber;//保存当前行号,用户右键菜单。
    var currentRowNumber;//保存当前行号,用户右键菜单。
60 grid.addListener('rowcontextmenu', rightClickFn);//为右键菜单添加事件监听器
    grid.addListener('rowcontextmenu', rightClickFn);//为右键菜单添加事件监听器
61 //显示右键菜单
    //显示右键菜单
62
 function rightClickFn(grid, rowindex, e)
    function rightClickFn(grid, rowindex, e) {
{
63 e.preventDefault();
        e.preventDefault();
64 rightClickMenu.showAt(e.getXY());
        rightClickMenu.showAt(e.getXY());
65 currentRowNumber = rowindex;
        currentRowNumber = rowindex;
66 }
    }
67 //右键菜单
    //右键菜单
68
 var rightClickMenu = new Ext.menu.Menu(
    var rightClickMenu = new Ext.menu.Menu( {
{
69 id: 'rightClickMenu',
        id: 'rightClickMenu',
70
 items: [
        items: [ {
{
71 id: 'menuContent1',
            id: 'menuContent1',
72 handler: menuContent1Fn,
            handler: menuContent1Fn,
73 text: '显示行号'
            text: '显示行号'
74
 },
        },  {
{
75 id: 'menuContent2',
            id: 'menuContent2',
76 handler: menuContent2Fn,
            handler: menuContent2Fn,
77 text: '右键菜单2'
            text: '右键菜单2'
78 }]
        }]
79 })
    })
80
 function menuContent1Fn()
    function menuContent1Fn() {
{
81 alert('行号为' + currentRowNumber);
        alert('行号为' + currentRowNumber);
82 }
    }
83
 function menuContent2Fn()
    function menuContent2Fn() {
{
84 alert('右键菜单2');
        alert('右键菜单2');
85 }
    }
86 
    
87 });
});
88
 
	posted on 2008-03-07 16:11 
大卫 阅读(5114) 
评论(1)  编辑  收藏  所属分类: 
JavaScript