EXT 中的Grid实例
来源:互联网 发布:类似it桔子 编辑:程序博客网 时间:2024/05/18 02:59
为Grid配置了Ext.grid.CheckboxSelectionModel()属性,但达不到想的效果,去查看了源码,也没看出个所以然,请教各位前辈,用什么方法可以实现以下两种效果:
1.点击记录只改变背景色,不改变选择状态。要想选中,只能去点击checkbox
2.点击记录,选中该记录,但不改变其它已选中记录的状态。
源码:
gridJson.js
// ext-grid.2.x
Ext.onReady(function(){
// 定义一个checkBox
var sm = new Ext.grid.CheckboxSelectionModel();
sm.handleMouseDown = Ext.emptyFn;
// 定义一个ColumnModel,表头中有四列
var cm = new Ext.grid.ColumnModel([
sm,
{header:'编号',dataIndex:'id'},
{header:'名称',dataIndex:'name'},
{header:'描述',dataIndex:'descn'}
]);
/*===================== 判断红男绿女 =====================*/
function myRenderSex(value){
if (value == 'male'){
return "<span style='color:red;font-weight:bold;'> 红男 </span><img src='/images//male.png' />";
}else{
return "<span style='color:green;font-weight:bold;'> 绿女 </span><img src='/images//fmale.png' />";
}
}
/*===================== 察看详细 =====================*/
function renderDescn(value, cellmeta, record, rowIndex, columnIndex, store) {
var str = "<input type='button' value='查看详细信息' onclick='alert(/"" +
"这个单元格的值是:" + value + "//n" +
"这个单元格的配置是:{cellId:" + cellmeta.cellId + ",id:" + cellmeta.id + ",css:" + cellmeta.css + "}//n" +
"这个单元格对应行的record是:" + record + ",一行的数据都在里边//n" +
"这是第" + rowIndex + "行//n" +
"这是第" + columnIndex + "列//n" +
"这个表格对应的Ext.data.Store在这里:" + store + ",随便用吧。" +
"/")'>";
return str;
}
/*===================== 二维数组 =====================*/
/* ArrayData:添加数据 */
var data = [
['1','name1','descn1'],
['2','name2','descn2'],
['3','name3','descn3'],
['4','name4','descn4'],
['5','name5','descn5']
];
/* ArrayReader
* ds要对应两个部分:proxy和reader。proxy告诉我们从哪里获得数据,reader告诉我们如何解析这个数据。
* Ext.data.MemoryProxy,它是专门用来解析js变量的。你可以看到,我们直接把data作为参数传递进去了。
*/
var ds = new Ext.data.Store({
/*
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, [
{name: 'id',mapping: 0},
{name: 'sex',mapping: 1},
{name: 'name',mapping: 2},
{name: 'descn',mapping: 3}
])
*/
proxy: new Ext.data.HttpProxy({url:'gridJsonData.jsp'}),
reader: new Ext.data.JsonReader({
totalProperty: 'totalProperty',
root: 'root'
}, [
{name: 'id'},
{name: 'name'},
{name: 'descn'}
])
});
/* 装配 */
/*
注意:Ext.grid.Grid的第一个参数是渲染的id,
对应在html里应该有一个 <div id="grid"></div>的东西,这样grid才知道要把自己画到哪里。
创建完grid以后,还要用grid.render()方法,让grid开始渲染,这样才能显示出来。
*/
cm.defaultSortable = true; // 设置列可排序
var grid = new Ext.grid.GridPanel({
el: 'grid',
ds: ds,
cm: cm,
//sm: sm,
// 定义分页
bbar: new Ext.PagingToolbar({
pageSize: 10,
store: ds,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录"
}),
sm: sm,
title: "Grid 例子",
height: 300
});
grid.on('rowclick', function(grid,t) {
if(sm.isSelected(t))
sm.deselectRow(t);
else
sm.selectRow(t,true);
});
ds.load({params:{start:0, limit:10}});
grid.render();
})
gridJsonData.jsp
<%
String start = request.getParameter("start");
String limit = request.getParameter("limit");
//String start = "0";
//String limit = "100";
try {
int index = Integer.parseInt(start);
int pageSize = Integer.parseInt(limit);
String json = "{totalProperty:100,root:[";
for (int i = index; i < pageSize + index; i++) {
json += "{id:" + i + ",name:'name" + i + "',descn:'descn" + i + "'}";
if (i != pageSize + index - 1) {
json += ",";
}
}
json += "]}";
response.getWriter().write(json);
} catch(Exception ex) {
}
%>
grid.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Grid</title>
<!-- Base Js Lib-->
<script type="text/javascript" src="http://www.cnblogs.com/extPlus/release2/js/ext-base.js"></script>
<script type="text/javascript" src="http://www.cnblogs.com/extPlus/release2/js/ext-all.js"></script>
<script type="text/javascript" src="http://www.cnblogs.com/extPlus/release2/js/ext-lang-zh_CN.js"></script>
<!-- Base css and patch-->
<link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/extPlus/release2/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="http://www.cnblogs.com/extPlus/release2/css/ext-patch.css" />
<!-- local js lib-->
<script type="text/javascript" src="gridJson.js"></script>
</head>
<body>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0"><tr>
<td >测试</td>
</tr>
<tr>
<td >
<div id="grid"></div>
</td>
</tr>
</table>
</body>
</html>
- EXT 中的Grid实例
- Ext.grid.GroupingView 实例
- Ext.grid.EditorGridPanel 实例
- EXT中的GRID分页示例
- Ext Grid中的Summary功能
- ext grid
- EXT-Grid
- Ext grid
- Ext.grid
- Ext.grid
- ext-grid常见问题 : Grid
- EXT Js、struts2做的form和grid实例
- 由实例出发看看Ext——《Property Grid》
- EXT JS Grid checkbox GridPanel 中的批量操作
- Ext应用--Combobox在Grid中的查询与显示
- EXT JS Grid checkbox GridPanel 中的批量操作
- [Ext JS 4] Grid 中的单元格添加Tooltip 的效果
- ExtJs4.2.1中的Ext.grid.GridPanel选择行回车事件
- 用js判断中文字符串的长度
- ASP.NET - 使用 SqlDataSource 控件修改数据
- VS 使用技巧
- C#高级编程
- 一致性代码段和非一致性代码段
- EXT 中的Grid实例
- 对引用和指针使用以及函数返回引用和指针类型的理解
- oracle中的NVL,NVL2,NULLIF,COALESCE几个通用函数
- li中的图片和文字不对齐div+css,解决方法
- 查看SQL Server中某数据库下每个表占用的空间大小
- Java通用验证码程序及应用示例(提供源码文档下载)
- 新手如何在有关期刊上发表论文
- Flex Error Classes Poster
- C++ 初学者指南 第二篇(3)