核心提示:FlexGrid在JavaScript程序中启动添加Wijmo引用; 添加wijmo控件的扩展; 在javascript中初始化wijmo控件; (可选)添加css和自定义的样式文件。代码参考...
FlexGrid在JavaScript程序中启动
添加Wijmo引用; 添加wijmo控件的扩展; 在javascript中初始化wijmo控件; (可选)添加css和自定义的样式文件。代码参考:
<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数据对应关系。


