FlexGrid
在JavaScript
程序中启动
代码参考:
<head>
<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
<link rel="stylesheet" type="text/css" href="css/wijmo.css" />
<link href="css/app.css" rel="stylesheet" type="text/css" />
<script src="scripts/jquery.js" type="text/javascript"></script>
<script src="scripts/bootstrap.js" type="text/javascript"></script>
<script src="scripts/wijmo.js" type="text/javascript"></script>
<script src="scripts/wijmo.input.js" type="text/javascript"></script>
<script src="scripts/wijmo.grid.js" type="text/javascript"></script>
</head>
使用flexgrid
的itemsSource
属性设置数据源就可以实现简单的绑定,代码参考:
<script type="text/javascript">
//初始化flexgrid
$(document).ready(function () {
var count = 10;
var data = [];
for (var i = 0; i < count; i++) {
data.push({
序号: "00" + (i + 1).toString(),
ID号: "21601"+i.toString(),
英文名: "TingTao Ge",
中文名: "听涛阁",
最小楼层: 2,
最大楼层: 12,
状态: true,
日期: new Date(2014, i % 12, i % 28),
});
}
// create CollectionView on the data (to get events)
var cv = new wijmo.collections.CollectionView(data);
var grid = new wijmo.grid.FlexGrid('#theGrid1', {
itemsSource: cv,
});
});
</script>
将flexgrid
的AutoGenerateColumns
设置为false,即可通过columns
实现自定义绑定。
<script type="text/javascript">
$(document).ready(function () {
var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(','),
ids = '001,001,002,002,003,003'.split(','),
data = [];
for (var i = 0; i < countries.length; i++) {
data.push({
id:ids[i%ids.length],
country: countries[i % countries.length],
});
}
var cvTrackingChanges = new wijmo.collections.CollectionView(data);
var grid = new wijmo.grid.FlexGrid('#gsFlexGrid',{
autoGenerateColumns: false,
columns: [
{ header: 'id', binding: 'id'},
{ header: 'country', binding: 'country'},
],
});
grid.itemsSource = cvTrackingChanges;
})
</script>
设置某列只读:将isReadOnly
属性设置为true
。
设置某列的宽度:设置width
属性为特定的值。
代码参考:
columns: [
{ header: 'id', binding: 'id',width:50,isReadOnly:true},
{ header: 'country', binding: 'country', width: 100},
],
在上一篇,我们了解了数据绑定。本文我们就来介绍flexgrid
的一个重要功能:dataMap
。
flexgrid
在winForm
平台下有一个功能,叫做DataMap
。对于flexgrid
的某一列,显示的文字和存储的值不一致,就可以使用DataMap
功能。这个功能在基于HTML5
平台的flexgrid
中也可以使用。本文使用的框架是纯JavaScript
。
实现步骤如下:
1.创建字段
创建id和name两个字段,并且赋值。代码参考:
actions = [{ id: 3, name: 'Invite' },
{ id: 26, name: 'Finalize' },
{ id: 1, name: 'Withdraw' }],
2.创建数据源
创建数据源里的一个字段actionId
,它的值是之前的id。代码参考:
for (var i = 0; i < countries.length; i++) {
data.push({
country: countries[i % countries.length],
actionId: actions[i % actions.length].id
});
}
3.DataMap创建关系
通过DataMap
创建id和name的关系。代码参考:
var actionsMap = new wijmo.grid.DataMap(actions, "id", "name");
4.设置dataMap
使用列的dataMap
属性设置dataMap
。代码参考:
var col = grid.columns.getColumn('actionId');
col.dataMap = actionsMap;
到此,就实现了列的DataMap
数据对应关系。