做一个可编辑的,可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强的更多相关文章

  1. Ext JS4百强应用: 用grid.plugin.CellEditing做高级查询 --第10强

    Ext JS4,用grid.plugin.CellEditing做高级查询: 写了90%,界面出来了,小兴奋就贴出来,还有细节要调整,基本能用. 代码: Ext.define('chenghao.ad ...

  2. Ext JS4百强应用:设置textfield的悬浮提示信息 --第8强

    在Extjs4中有时候我们需要textfield的提示信息,但是我们发现textfield并没有这样的配置项. 这时候我们就要另想方法:我们需要在鼠标悬停在textfield组件的时候进行信息的提示, ...

  3. Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法

    Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法 昨天在开发的时候遇到个小问题,就是如何将Grid的内容与Form一起发送到服务器端.默认情况下,表单(F ...

  4. C++11 强枚举类型

    在标准C++11之前的枚举是继承C的,枚举类型不是类型安全的.枚举类型被视为整数,这使得两种不同的枚举类型之间可以进行比较. 一.C中enum类型的局限语法: enum type1{a, b, c}; ...

  5. 名词解释——Ext JS4

    Ext.onReady——Ext主入口,和onload事件不同,不需要页面所有东西加在出来. Ext js 的基本语法就是使用树状图来配置对象来定义界面: { config_options1:valu ...

  6. asp.net对word文档进行修改 对于使用word文档做模板编辑比较适用

    最近做项目,需要多word文档进行编辑并导出一个新的word,在最初的word编辑中留下特定的字符串用来替换,然后在本地生成一个新的word文档,并且不修改服务器中的word文档,这样才能保证服务器中 ...

  7. Ext 修改内容之后 不做任何动作 再次修改时的数据是原来第一次修改前的数据

    转自  http://blog.csdn.net/jaune161/article/details/18220257 在项目开发中遇到这样一个问题,点击Grid中的一条记录并修改,修改完后保存并且刷新 ...

  8. C++枚举类型Enum及C++11强枚举类型用法

    C++中的枚举类型常常和switch配合使用,这里用一个简单的switch控制键盘回调的代码片段来说明枚举的用法: //W A S D 前.后.左.右行走 enum Keydown{ Forward= ...

  9. 一点做用户画像的人生经验(一):ID强打通

    1. 背景 在构建精准用户画像时,面临着这样一个问题:日志采集不能成功地收集用户的所有ID,且每条业务线有各自定义的UID用来标识用户,从而造成了用户ID的零碎化.因此,为了做用户标签的整合,用户ID ...

随机推荐

  1. centos7里默认python升级到2.7.11

    CentOS镜像使用帮助 http://mirrors.163.com/.help/centos.html   安装gcc yum install gcc* openssl openssl-devel ...

  2. jquery 设置select的默认值

    <select id="sel" > <option value="s1" > aaaa </option> <opt ...

  3. UVA 10003 Cutting Sticks

    题意:在给出的n个结点处切断木棍,并且在切断木棍时木棍有多长就花费多长的代价,将所有结点切断,并且使代价最小. 思路:设DP[i][j]为,从i,j点切开的木材,完成切割需要的cost,显然对于所有D ...

  4. 模块化手机project ara之我见

    组装电脑,已被大部分人所熟知,只是像玩具一样组装手机,应该还仅仅是停留在想象.谷歌Project Ara将这一想象一步一步拉进现实,她希望提供一块框架,使用者能够自由地替换摄像头.显示屏.处理器.电池 ...

  5. 2014最新SSH框架面试题大收集

    (1)Hibernate工作原理及为什么要用? 原理:  1.读取并解析配置文件  2.读取并解析映射信息,创建SessionFactory  3.打开Sesssion  4.创建事务Transati ...

  6. VSTO之旅系列(一):VSTO入门

    原文:VSTO之旅系列(一):VSTO入门 引言: 因为工作的原因,这段时间一直在看VSTO的相关的内容的,因此希望通过这个系列来记录下我学习的过程和大家分享Office开发的相关知识,希望以后有朋友 ...

  7. poj3678(two-sat)

    传送门:Katu Puzzl 题意:n个点,点的取值可以是0或者1.m条边,有权值,有运算方式(并,或,异或),要求和这条边相连的两个点经过边上的运算后的结果是边的权值.问你有没有可能把每个点赋值满足 ...

  8. SimpleDateFormat 的线程安全问题与解决方式

    SimpleDateFormat 的线程安全问题 SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的详细类. 它同意格式化 (date -> text).语法分析 (te ...

  9. java7 API详解

    Java™ Platform, Standard Edition 7API Specification This document is the API specification for the J ...

  10. Cocos2d-x3.0下一个 Lua与C++打电话给对方

    这里谈下Lua与C++如何实现相互通话 原来的连接:http://blog.csdn.net/qqmcy/article/details/26052771 DJLCData.h 实现类 // // D ...