首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 MVC 设计模式的 Dojo Grid -3 视图

使用 MVC 设计模式的 Dojo Grid -3 视图

视图在 MVC 设计模式中,视图从模型检索应用程序数据并将其呈现给用户。表格提供了许多函数来简化对呈现的更改。在以下几节中,我将展示一些典型用法,从视图角度演示强大的表格功能。.
使用标记进行表格布局定义总体而言,表格可以在 HTML 标记中以声明方式定义,也可以在 JavaScript 中以编程方式定义。清单 7 给出了一个使用标记的高级结构定义,它会生成如图 2 所示的显示外观。
清单 7. 使用标记定义布局的 JavaScript 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<table id="grid" jsId="grid" dojoType="dojox.grid.DataGrid" store="myStore"
     rowSelector="10px">
<thead>
    <tr>                              
        <th field="id" width="10px">ID</th>
        <th field="name">Name</th>
        <th field="manager" with="50px">Is manager</th>
        <th field="sex" width="50px">Sex</th>
        <th field="age" width="50px">Age</th>
        <th field="date" width="100px">On Board date</th>
    </tr>
    <tr>
        <th field="annualLeaveTotal" colspan="3">
                                Total annual leave days
                </th>
        <th field="annualLeaveTaken" colspan="3">
            Annual leave days already taken
                 </th>
    </tr>
</thead>
</table>




图 2. 使用标记定义布局的表格以编程方式定义表格布局表的结构也可以以编程方式设置。structure 属性可以指定一个对象来定义单元格结构。
清单 8. 以编程方式定义布局的 JavaScript 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
var layout = [{
                name: 'ID',
                field: 'id',
                width: '10px'
            }, {
                name: 'Name',
                field: 'name',
                width: '50px'
            }, {
     name: 'Is manager',
     field:'manager',
    width:'100px'
    }, {
                name: 'Sex',
                field: 'sex',
                width: '50px'
            }, {
                name: 'Age',
                field: 'age',
                width: '50px'
            },{
                name: 'On Board date',
                field: 'date',
                width: '100px'
            }, {
                name: 'Total annual leave days',
                field: 'annualLeaveTotal',
                width: '100px'
            }, {
                name: 'Annual leave days already taken',
                field: 'annualLeaveTaken',
                width: '100px'
    }];

var grid = new dojox.grid.DataGrid({
            id: 'grid',
            store: myStore,
            structure: layout
        }, dojo.byId('grid'));




锁定列,禁用横向滚动可以锁定 一组列,阻止它们横向滚动,而允许其他列继续滚动。要实现此功能,您可以使用两种结构并将一种结构的 noscroll 属性设置为 true。               
在清单 9 所示的示例中,声明了两种结构。针对 ID 和 Name 列的结构的 noscroll 属性设置为 true。然后使用一个数组将这两种结构组合到一个布局结构中。
清单 9 .锁定 ID 和 Name 列的 JavaScript 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
var fixlayout = {
                noscroll: true,
                cells: [{
                    name: 'ID',
                    field: 'id',
                    width: '10px'
                     
                }, {
                    name: 'Name',
                    field: 'name',
                    width: '50px'
                }]
            };

var mainlayout = {
                onBeforeRow: beforerow,
                onAfterRow: afterrow,
                cells: [{
                    name: 'Is manager',
                    field: 'manager',
                    width: '200px'
                }, {
                    name: 'Sex',
                    field: 'sex',
                    width: '50px'
                }, {
                    name: 'Age',
                    field: 'age',
                    width: '50px'
                }, {
                    name: 'On Board date',
                    field: 'date',
                    width: '100px',
                }, {
                    name: 'Total annual leave days',
                    field: 'annualLeaveTotal',
                    width: '100px'
                }, {
                    name: 'Annual leave days already taken',
                    field: 'annualLeaveTaken',
                    width: '100px'
                }]
            };

var layout = [fixlayout, mainlayout];




从图 3 可以看出 ID 和 Name 列已被锁定,但剩余的列仍然可以横向滚动。
图 3. 具有固定列的表格
返回列表