Ext JS4百强应用: 做可编辑的,可checked的treegrid--第11强
做一个可编辑的,可checked的treegrid,代码相当简洁:
请看代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ZCH</title>
<!-- extjs 样式 -->
<link rel="stylesheet" type="text/css" href="../ext4_2_0/resources/css/ext-all.css"/>
<!-- extjs 引入文件 -->
<script type="text/javascript" src="../ext4_2_0/ext-all.js"></script>
<script type="text/javascript" src="../ext4_2_0/locale/ext-lang-zh_CN.js"></script> <script>
Ext.define('treeGridModel', {
extend: 'Ext.data.Model',
fields: [{
name: 'title',
type: 'string'
}, {
name: 'min',
type: 'int'
}, {
name: 'max',
type: 'int'
}]
}); Ext.define('checkTreeGrid', {
extend: 'Ext.tree.Panel', requires: [
'Ext.data.*',
'Ext.grid.*',
'Ext.tree.*',
'Ext.ux.CheckColumn'
],
xtype: 'tree-grid', title: 'checkedTreeEditGrid',
useArrows: true,
rootVisible: false,
multiSelect: true,
//singleExpand: true, initComponent: function() {
this.width = 600;
this.cellEditing = new Ext.grid.plugin.CellEditing({
clicksToEdit: 1
});
var me = this;
Ext.apply(this, {
store: new Ext.data.TreeStore({
model: treeGridModel,
proxy: {
type: 'ajax',
url: './checktreegrid.json'
},
folderSort: true
}),
plugins: [me.cellEditing],
selType: 'cellmodel', //设置为单元格选择模式
columns: [{
xtype: 'treecolumn', //this is so we know which column will show the tree
text: '可用资源',
flex: 2,
sortable: true,
dataIndex: 'title'
},{
text: '最小值',
flex: 1,
dataIndex: 'min',
sortable: true,
field:{
xtype: 'textfield'
}
},{
text: '最大值',
flex: 1,
dataIndex: 'max',
sortable: true,
field:{
xtype: 'textfield'
}
}], listeners:{
checkchange : function(node, checked) {
if (checked == true) {
node.checked = checked;
// console.dir(node.parentNode);
//alert(node.get("leaf"));
//获得父节点
pNode = node.parentNode;
//当checked == true通过循环将所有父节点选中
for (; pNode != null; pNode = pNode.parentNode) {
pNode.set("checked", true);
}
}
//当该节点有子节点时,将所有子节点选中删除
if (!node.get("leaf") && !checked){
node.cascadeBy(function(node){
node.set('checked', false);
});
}
}
} });
this.callParent();
}
}); Ext.onReady(function(){
var tree = Ext.create('checkTreeGrid', {
renderTo:'example-grid'
});
}); </script>
</head> <body>
<div id="example-grid"></div>
</body>
</html>
Ext JS4百强应用: 做可编辑的,可checked的treegrid--第11强的更多相关文章
- Ext JS4百强应用: 用grid.plugin.CellEditing做高级查询 --第10强
Ext JS4,用grid.plugin.CellEditing做高级查询: 写了90%,界面出来了,小兴奋就贴出来,还有细节要调整,基本能用. 代码: Ext.define('chenghao.ad ...
- Ext JS4百强应用:设置textfield的悬浮提示信息 --第8强
在Extjs4中有时候我们需要textfield的提示信息,但是我们发现textfield并没有这样的配置项. 这时候我们就要另想方法:我们需要在鼠标悬停在textfield组件的时候进行信息的提示, ...
- Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法
Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法 昨天在开发的时候遇到个小问题,就是如何将Grid的内容与Form一起发送到服务器端.默认情况下,表单(F ...
- C++11 强枚举类型
在标准C++11之前的枚举是继承C的,枚举类型不是类型安全的.枚举类型被视为整数,这使得两种不同的枚举类型之间可以进行比较. 一.C中enum类型的局限语法: enum type1{a, b, c}; ...
- 名词解释——Ext JS4
Ext.onReady——Ext主入口,和onload事件不同,不需要页面所有东西加在出来. Ext js 的基本语法就是使用树状图来配置对象来定义界面: { config_options1:valu ...
- asp.net对word文档进行修改 对于使用word文档做模板编辑比较适用
最近做项目,需要多word文档进行编辑并导出一个新的word,在最初的word编辑中留下特定的字符串用来替换,然后在本地生成一个新的word文档,并且不修改服务器中的word文档,这样才能保证服务器中 ...
- Ext 修改内容之后 不做任何动作 再次修改时的数据是原来第一次修改前的数据
转自 http://blog.csdn.net/jaune161/article/details/18220257 在项目开发中遇到这样一个问题,点击Grid中的一条记录并修改,修改完后保存并且刷新 ...
- C++枚举类型Enum及C++11强枚举类型用法
C++中的枚举类型常常和switch配合使用,这里用一个简单的switch控制键盘回调的代码片段来说明枚举的用法: //W A S D 前.后.左.右行走 enum Keydown{ Forward= ...
- 一点做用户画像的人生经验(一):ID强打通
1. 背景 在构建精准用户画像时,面临着这样一个问题:日志采集不能成功地收集用户的所有ID,且每条业务线有各自定义的UID用来标识用户,从而造成了用户ID的零碎化.因此,为了做用户标签的整合,用户ID ...
随机推荐
- 请慎用java的File#renameTo(File)方法(转)
以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名.移动文件的目的.不过后来经常发现问题:File#renameTo(File)方法会返回 ...
- operator= 复制操作符的意外
首先,看以下的代码的输出时什么: 上述代码做了最理所当然的事.就是将Derived的两个对象进行了交换.可是通过指针进行的赋值输出却不是预期的: 居然调用的是Base的operator=,也就意味着我 ...
- git版本号回滚
先说今天遇到的问题,看到一个config.php的配置文件一直在改动的状态下,可是和远程的config.php是不一致的,我不须要提交它,可是看它在 modified的状态下,非常不爽.想删除它.gi ...
- 使用函数指针和多态代替冗长的if-else或者switch-case
在编程中,if-else和switch-case是很常见的分支结构,很少在程序中不用这些控制语句.但是不能否认,在一些场景下,由于分支结构过分长,导致代码不美观且不容易维护,在<重构>一书 ...
- [Android学习笔记]使用getIdentifier()获取资源Id
使用getIdentifier()获取资源Id Android中可以使用getIdentifier()获取资源ID ex: 根据图片名称获取图片Id private int getImageResId ...
- Linux与JVM的内存关系分析(转)
引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m.从表面上,物理内存 ...
- gcc入门
gcc入门 1. 什么是gcc gcc的全称是GUN Compiler Collection,它是一个能够编译多种语言的编译器.最开始gcc是作为C语言的编译器(GNU C Compiler),现在除 ...
- 黑马程序猿_ 利用oc的协议实现代理模式
先说下代理模式是什么吧 定义: 为其它对象提供一种代理以控制对这个对象的訪问.在某些情况下,一个对象不适合或者不能直接引用还有一个对象 而代理对象能够在client和目标对象之间起到中介的作用. 在看 ...
- dblink如果很慢可以用这种方式优化
发现dblink如果很慢可以用这种方式加个/*+driving_site(xxx)*/,查询很快 DBLINK HINT /*+ driving_site(org) */ 优化策略和思路 使用DBLI ...
- A Game of Thrones(8) - Bran
The hunt left at dawn. The king wanted wild boar at the feast tonight. Prince Joffrey rode with his ...