以下是一个简单的grilPanel,并且做了一些样式,做的不好,请包涵!
有什么意见可留言相告!谢谢!
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
.blist {
background-image: url(img/add16.gif)!important;
}
</style>
<title>表格显示</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="styles.css">
-->
<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css">
<%-- <link rel="stylesheet" type="text/css" href="ext/resources/css/xtheme-green.css">--%>
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<%-- <link rel="stylesheet" href="ext/resources/css/visual/grid.css" type="text/css"></link></head>--%>
<script type="text/javascript">
Ext.onReady(function(){
Ext.QuickTips.init();
//Ext.util.CSS.swapStyleSheet("theme","ext/resources/css/xtheme-gray.css");
var data=[
{id:"1",name:"王孟",sex:"男",age:"20"},
{id:"2",name:"王山",sex:"女",age:"18"},
{id:"3",name:"王孟",sex:"男",age:"20"},
{id:"4",name:"杨占峰",sex:"男",age:"23"},
{id:"5",name:"王孟",sex:"男",age:"20"},
{id:"6",name:"赵鹏",sex:"男",age:"24"},
{id:"7",name:"王孟",sex:"男",age:"20"},
{id:"8",name:"知州",sex:"男",age:"20"},
{id:"9",name:"吴真",sex:"男",age:"24"},
{id:"10",name:"一见如故",sex:"女",age:"20"},
{id:"11",name:"旋",sex:"女",age:"16"},
{id:"12",name:"如如",sex:"女",age:"20"},
{id:"13",name:"三星",sex:"男",age:"18"}
];
var store=new Ext.data.JsonStore({
data:data,
fields:["id","name","sex","age"]
});
//定义表格编号
var rowNumber=new Ext.grid.RowNumberer({
width:30,
sortable:true
//header:"序号"
});
var sm=new Ext.grid.CheckboxSelectionModel();//实例化一个多选框
//根据条件用来转换年龄的字体颜色
function pctChange(val){
if(val <20){
return '<span style="color:green;">' + val + '</span>';
}else if(val > 20){
return '<span style="color:red;">' + val + '</span>';
}
return val;
}
//定义列
var colum=new Ext.grid.ColumnModel(
[
rowNumber,
sm,
{
header:"编号",
dataIndex:"id",//绑定字段
sortable:true,//是否排序
width:100
},
{
header:"姓名",
dataIndex:"name",
sortable:true,
width:100
},
{
header:"性别",
dataIndex:"sex",
sortable:true,
width:100
},
{
header:"年龄",
dataIndex:"age",
sortable:true,
renderer:pctChange,//设置年龄显示的颜色
width:100
}
]);
//设置显示列为中文
var viewC=new Ext.grid.GridView({
columnsText:"请选择显示的列",
sortAscText:"升序",
sortDescText:"降序",
getRowClass : function(record, rowIndex, p, store){
if(this.showPreview){
p.body = '<p>'+record.data.excerpt+'</p>';
return 'x-grid3-row-expanded';
}
return 'x-grid3-row-collapsed';
}
});
//定义搜索控件
var tbar=new Ext.Toolbar({
items:[
"请输入查询信息:",
"-",
{
xtype:"textfield",
name:"message",
id:"message",
emptyText:"==请输入==",
allowBlank:false,
validateOnBlur:true,//失去焦点验证
blankText:"请输入要查询的信息",
msgTarget:"side"
},
"-",
{
id:"btnS",
text:"查询",
iconCls:"blist",
handler:function(){
Ext.MessageBox.alert("输入:",Ext.getCmp("message").getValue())//Ext.getCmp("message").getValue()根据Id得到控件里的值或Ext.get("message").dom.value
}
}
]
});
//定义分页按钮
var bbar=new Ext.PagingToolbar({
pageSize:4,
store:store,
displayInfo:true,
lastText:"尾页",
nextText:"下一页",
beforePageText:"当前",
refreshText:"刷新",
afterPageText:"页,共{0}页",
displayMsg: '显示 {0} - {1} 共 {2}',
emptyMsg:"对不起,没有您查询的信息"
//plugins:new Ext.ux.SlidingPager()
});
//定义grid面板
var gridP=new Ext.grid.GridPanel(
{
id:"grids",
title:"基本信息列表",
width:500,
height:300,
cm:colum,
store:store,
viewConfig:viewC,
renderTo:Ext.getBody(),
iconCls:"dd",
tbar:tbar,//设置搜索控件
//loadMask:true,//加载效果
stripeRows:true,//设置斑马颜色
bbar:bbar,//设置分页栏
stripeRows: true,
loadMask:{
msg:"数据正在加载中...."
},
buttons:[
{
id:"btnSave",
text:"添加",
iconCls:"blist",//使用自定义样式
renderTo:'btn',
handler:function(){
save();
}
},
{
id:"btnUpdate",
icon: "img/dd-10.gif",
cls: "x-btn-text-icon",
text:"修改"
},
{
id:"btnDel",
text:"删除"
}
]
//overCls:"active"
});
//点击后使该行的背景色该为红色
gridP.addListener('rowclick',function(gridP, rowIndex, e){
var s=gridP.getStore();
var x=s.getAt(rowIndex);
//alert(x.get('id'));
gridP.getView().getRow(rowIndex).style.backgroundColor="red";
});
gridP.render();//重新加载
<%-- store.load({//加载数据--%>
<%-- params:{start:0,limit:4}--%>
<%-- });--%>
});
</script>
<body>
<div id="panles"/>
</body>
</html>
-----------在ext-all.css修改代码如下---------
.x-grid3-row {
border-color:#ffaaee;//改变grid边框颜色
border-top-color:#fff;
}
.x-grid3-row-alt{
background-color:#ddeeaa;//改变 行的颜色
}
.x-grid3-row-over {
border-color:#ddd;
background-color:#ee1166;//鼠标移上去改变行的底色
background-image:url(../images/default/grid/row-over.gif);
}
===浏览效果见附件===
- 大小: 31 KB
分享到:
相关推荐
综上所述,`Ext.grid.GridPanel`提供了非常全面且强大的功能,使得开发者能够根据实际需求灵活定制表格的样式和交互。通过深入了解这些配置选项和方法,可以更高效地利用ExtJS框架实现复杂的前端表格功能。
解决Ext.grid.GridPanel中的单元格不能选中复制的问题需要从两个方面入手:添加新的CSS样式和修改Ext.grid.GridPanel的protoType。这些解决方案可以帮助开发者解决这个棘手的问题,提高用户体验。
var grid = new Ext.grid.GridPanel({ store: store, // 绑定数据存储 columns: [/* 定义列 */], plugins: [editor], // 使用 RowEditor 作为插件 title: 'My Grid', width: 500, height: 300, renderTo: ...
### Ext grid panel 滚动条位置不变 在前端开发领域,特别是在使用Ext JS框架时,保持滚动条位置不变是一个非常实用的功能。特别是在处理实时数据更新的场景下,这一功能可以确保用户在数据刷新后仍然停留在之前...
这个插件主要用于改进Ext Grid的用户体验,特别是处理大量数据时,通过列锁定和多表头功能,使得用户能够更有效地浏览和操作数据。 首先,"列锁定"是Ext Grid中一个非常实用的功能,特别是在显示宽广、多列的数据表...
GridPanel由Store(数据存储)和ColumnModel(列模型)组成,它们定义了数据源和显示样式。在创建GridPanel时,我们需要配置这两个部分,例如: ```javascript var store = Ext.create('Ext.data.Store', { fields...
**2.6 Grid Panel (Ext.grid.GridPanel)** - **xtype**: `grid` - **功能描述**:Grid Panel 是一个用于展示表格数据的组件。 - **主要用途**:展示结构化数据,支持排序、过滤等功能。 **2.7 Paging Toolbar (Ext...
解决 ExtJS GridPanel 单元格无法选中复制的问题需要两个步骤:添加新的 CSS 样式和修改 Ext.grid.GridPanel 的 prototype。通过这些步骤,我们可以使得单元格的内容可以被选中和复制,从而提高用户体验。
其表格组件(`Ext.grid.GridPanel`)是其最具特色的功能之一,广泛应用于数据展示和管理。 #### 二、代码分析 在本例中,我们首先引入了必要的 ExtJS 相关文件,包括样式表、脚本等资源。 ```html ...
在这个示例中,`grid`对象是一个`Ext.grid.GridPanel`实例,它包含了数据存储(`store`)、列定义以及样式配置等。值得注意的是`width`和`height`属性的设置方式,正是我们前面讨论的动态尺寸调整策略。 ### 小结 ...
- 首先,我们需要创建一个继承自EXTJS的`Ext.grid.GridView`的自定义View类。这个类将覆盖默认的渲染逻辑,以便在表格底部插入合计行。 - 在`GridSummary.js`文件中,我们可以定义这个类,并重写`onRender`方法,...
这个"extjs动态表头"的资源很可能是一个插件或组件,名为`Ext.ux.grid.DynamicGridPanel.js`,它扩展了ExtJS的标准GridPanel,增加了动态调整列的能力。 动态表头的核心功能包括: 1. **实时编辑**:用户可以在...
ProgressColumn是Ext.ux.grid的一个扩展,它允许你在ExtJs的GridPanel中添加一列专门用于显示进度条。这对于监控任务进度、数据加载状态或者任何需要实时反馈的情况非常有用。下面,我们将详细介绍如何使用...
Ext修改GridPanel数据和字体颜色等,不是单指EditGridPanel 首先获取选中的行(当然也可以获取单元格): 代码如下: var selectedRow = grid.getSelectionModel().getSelected(); 修改设置: 代码如下: selectedRow....
var grid=new Ext.grid.GridPanel({ title:"个人信息表(JsonStore 读取数据)", iconCls:"icon", renderTo:Ext.getBody(), width:320, height:140, frame:true, collapsible:true, titleCollapse:true, ...
EXTJS的`GridPanel`提供了`selModel`属性来管理选择,你可以通过`selModel.selectAll()`和`selModel.deselectAll()`方法来实现全选和去全选。 标签中的“源码”意味着你需要理解EXTJS的底层工作原理,而“工具”则...
EXTJS单元格合并 EXTJS单元格合并是指在EXTJS GridPanel中实现...EXTJS单元格合并可以通过加入CSS样式、引入Ext.ux.grid.RowspanView对象和配置GridPanel来实现。这样可以使得GridPanel中的数据显示更加简洁和清晰。
如果用户确实选择了记录,`Ext.grid.GridPanel`的`getSelected()`方法将返回选中的记录。接着,获取选中记录的`eid`字段值,这是要删除的数据的ID。 然后,通过`Ext.Msg.confirm`弹出一个确认对话框,询问用户是否...
3. **创建Grid**:使用`Ext.grid.GridPanel`组件。 ```javascript // 创建数据存储 var store = new Ext.data.ArrayStore({ fields: ['name', 'email'], data : [['Tom', 'tom@example.com'], ['Jerry', 'jerry@...
6. **自定义样式**: 如果扩展还包括界面样式调整,可能还会在`cgrid.js`中包含CSS类名的定义,或者引用外部CSS文件来改变GridPanel的外观。 7. **实例化和使用`: 创建`MyCustomGrid`实例并在页面中使用。这可能涉及...