1:代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>gridPanel</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css" href="ext3.2/resources/css/ext-all.css"></link>
<script type="text/javascript" src="ext3.2/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext3.2/ext-all.js"></script>
<script type="text/javascript" src="ext3.2/src/local/ext-lang-zh_CN.js"></script>
<script type="text/javascript">
Ext.onReady(function() {
var grid = new Ext.grid.PropertyGrid({
title: '员工属性表格',
width: 300,
height: 200,
frame: true,
source: {
"员工名称": '张三',
"出生日期": new Date(1978, 01, 02),
"性别": '男',
"是否已婚": true,
"年龄": 31
}
});
grid.render('cumGrid');
});
</script>
</head>
<body>
<div id="cumGrid"> </div>
</body>
</html>
2:程序效果图
PropertyGrid模仿了典型开发环境中的属性表工具,属性表的每一行表现对象的一个属性,属性的值以"名称、值"对的形式保存在Ext.grid.PropertyRecord中。
注意frame属性,它的值为true,表示面板的边框外框可自定义的,若为false,表示边框为1px的点线(默认值为false),source表示要显示的数据对象
当frame的属性值为false时,效果图如下:
主要是注意表框的差别
3:只读的PropertyGrid
PropertyGrid用来显示一些属性信息,有很多时候数据是不允许随意改动的,但是PropertyGrid默认提供了可编辑功能,而且也没有提供可以配置是否允许编辑
的功能属性,这样使有些数据的安全性丧失了
实际上只要在beforeedit事件处理中设置e.cancel=true就可以了,代码如下:
Ext.onReady(function() {
var grid = new Ext.grid.PropertyGrid({
title: '员工属性表格',
width: 300,
height: 200,
frame: true,
source: {
"员工名称": '张三',
"出生日期": new Date(1978, 01, 02),
"性别": '男',
"是否已婚": true,
"年龄": 31
}
});
grid.render('cumGrid');
grid.on('beforeedit', function(e){
e.cancel = true;
return false;
});
});